Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -893,17 +893,21 @@ public static String ConvertSingleQuote(String inputStr, MessagePatternEscape ms
}
finalOutput.append(output.substring(prevStart, output.length())); // append any remaining substring in output

boolean icuCompatible = isICUMessagePatternCompatible(finalOutput.toString());
boolean javaMsgCompatible = isJavaMessageFormatCompatible(finalOutput.toString());
if (msgPatEsc == MessagePatternEscape.ALL && (icuCompatible || javaMsgCompatible)) {
return finalOutput.toString();
}
// Falling back to input string, if the operations yield a non message compatible string
if (!isMessagePatternCompatible(finalOutput.toString())) {
if (!icuCompatible || !javaMsgCompatible) {
System.out.println(finalOutput + " is not message pattern/java message format compatible");
return inputStr;
}

return finalOutput.toString();
}


public static boolean isMessagePatternCompatible(String inputStr) {
public static boolean isICUMessagePatternCompatible(String inputStr) {
MessagePattern msgPat = null;
try {
msgPat = new MessagePattern(inputStr);
Expand All @@ -917,13 +921,23 @@ public static boolean isMessagePatternCompatible(String inputStr) {
// just returns the input string.
return false;
}
return true;
}

public static boolean isJavaMessageFormatCompatible(String inputStr) {
try {
java.text.MessageFormat.format(inputStr, (Object[]) null);
} catch (Exception e) {
return false;
}
return true;
}

public static boolean isMessagePatternCompatible(String inputStr) {
boolean icuMsgCompatible = isICUMessagePatternCompatible(inputStr);
boolean javaMsgCompatible = isJavaMessageFormatCompatible(inputStr);
return icuMsgCompatible && javaMsgCompatible;
}

public static int findSingleQuote(String inputStr, int start){
return -1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ public class JavaPropertiesResourceTest {
bundleBuilder.addResourceString("T","'test'",20);
bundleBuilder.addResourceString("U","'value' should not contain '",21);
bundleBuilder.addResourceString("V","Don't use symbols like +-?.'",22);
bundleBuilder.addResourceString("W","length shouldn't exceed {max} characters",22);
bundleBuilder.addResourceString("X","length shouldn't exceed {0} characters",22);
WRITE_BUNDLE_ALL = bundleBuilder.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ M = The name ''{0}'' is already in use.
N = length must be between '{min} and '{max}
O = Password should not contain\:\#.-_''().
P = [\\p'{'L'}'\\uFF65]
Q = value must be '{min}
Q = value must be ''{min}
R = ''
S =
T = ''test''
U = ''value'' should not contain ''
V = Don''t use symbols like +-?.''
V = Don''t use symbols like +-?.''
W = length shouldn''t exceed {max} characters
X = length shouldn''t exceed {0} characters