Benoît Moreau created TEXT-106: ---------------------------------- Summary: Exception thrown in ExtendedMessageFormat using quotes with custom registry Key: TEXT-106 URL: https://issues.apache.org/jira/browse/TEXT-106 Project: Commons Text Issue Type: Bug Affects Versions: 1.1 Reporter: Benoît Moreau
An exception is thrown when a quote is used just before end brace of format element definition when a custom registry is used. This exception is not thrown when a blank space is added before the end brace. {code:java} public static void main(String[] args) { String pattern = "TEST: {0,choice,0#0|0<'1'}"; String patternWorkaround = "TEST: {0,choice,0#0|0<'1' }"; // a space after quote // Works fine MessageFormat format0 = new MessageFormat(pattern); System.out.println(format0.format(new Integer[] { 0 })); // "TEST: 0" System.out.println(format0.format(new Integer[] { 1 })); // "TEST: 1" // Works fine ExtendedMessageFormat format1 = new ExtendedMessageFormat(pattern); System.out.println(format1.format(new Integer[] { 0 })); // "TEST: 0" System.out.println(format1.format(new Integer[] { 1 })); // "TEST: 1" // Works fine ExtendedMessageFormat format2 = new ExtendedMessageFormat(patternWorkaround, new HashMap<String, FormatFactory>()); System.out.println(format2.format(new Integer[] { 0 })); // "TEST: 0" System.out.println(format2.format(new Integer[] { 1 })); // "TEST: 1 " // Doesn't work ExtendedMessageFormat format3 = new ExtendedMessageFormat(pattern, new HashMap<String, FormatFactory>()); System.out.println(format3.format(new Integer[] { 0 })); // Exception in thread "main" java.lang.IllegalArgumentException: Unterminated format element at position 9 System.out.println(format3.format(new Integer[] { 1 })); } {code} Expected behavior: This exception should not be thrown. -- This message was sent by Atlassian JIRA (v6.4.14#64029)