You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/11/04 10:55:00 UTC

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

    [ https://issues.apache.org/jira/browse/TEXT-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16238905#comment-16238905 ] 

ASF GitHub Bot commented on TEXT-106:
-------------------------------------

Github user PascalSchumacher commented on the issue:

    https://github.com/apache/commons-text/pull/73
  
    patch has some check-style violations, see: https://travis-ci.org/apache/commons-text/jobs/294087452


> 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
>            Assignee: Bruno P. Kinoshita
>            Priority: Major
>         Attachments: ExtendedMessageFormat.java.patch, ExtendedMessageFormatTest.java.patch
>
>
> 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)