[ 
http://www.stripesframework.org/jira/browse/STS-789?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ben Gunter resolved STS-789.
----------------------------

    Resolution: Fixed

Fixed for 1.5.5. I decided not to try for backward compatibility by checking 
for the presence of "''" in the message template. I think it's better just to 
fix it fully and issue a warning about that with the release.

> SimpleMessage calling MessageFormat with replacement parameters when there 
> are none
> -----------------------------------------------------------------------------------
>
>                 Key: STS-789
>                 URL: http://www.stripesframework.org/jira/browse/STS-789
>             Project: Stripes
>          Issue Type: Bug
>          Components: Formatting
>    Affects Versions: Release 1.5
>            Reporter: Rick Grashel
>            Assignee: Ben Gunter
>             Fix For: Release 1.5.5, Release 1.6
>
>         Attachments: diff.txt
>
>
> When using message bundles with <fmt:message> tags or using ordinary Java 
> calls to get ResourceBundle messages, there is a very specific behavior with 
> regards to single-quotes and replacement parameters.  
> By default, if <fmt:message> is used without replacement parameters ( 
> <fmt:param> ), then the MessageFormat class is not used to render the 
> message.  This means that escaping of single-quotes (with two single-quotes) 
> is not necessary for messages without replacement args.  Here is the relevant 
> excerpt of Apache's MessageSupport.java class (which is extended by the 
> MessageTag):
> ...
> message = bundle.getString( key );
> // Perform parametric replacement if required
> if ( !params.isEmpty() )
> {
>             Object[] messageArgs = params.toArray();
>             MessageFormat formatter = new MessageFormat( "" ); // empty 
> pattern, default Locale
>             ...
>             formatter.applyPattern( message );
>             message = formatter.format( messageArgs );
> }
> ...
> The SimpleMessage in Stripes is always using the MessageFormat class to 
> render messages.  Because of this, there is a behavior inconsistency with 
> regards to single-quotes.  If you have a property declared in 
> StripesResources as:
> my.property.key=This Is The User's Message
> The above property will be rendered as "This Is The User's Message" by 
> <fmt:message>.  However, SimpleMessage will render this message as "This Is 
> The Users Message".  SimpleMessage will strip out the single-quote.  This is 
> inconsistent behavior and means that quoted property messages cannot be 
> re-used seamlessly between Stripes and regular JSTL <fmt> tags.
> The necessary fix is for SimpleMessage to only use MessageFormat for 
> rendering messages if the replacementParameters passed into it have a length 
> greater than zero.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Stripes-development mailing list
Stripes-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to