You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Benoît Moreau (JIRA)" <ji...@apache.org> on 2017/10/27 09:24:00 UTC

[jira] [Created] (TEXT-106) Exception thrown in ExtendedMessageFormat using quotes with custom registry

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)