DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5865>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5865

WriteTag tests for null format string but PropertyMessageResources always returns 
String.

           Summary: WriteTag tests for null format string but
                    PropertyMessageResources always returns String.
           Product: Struts
           Version: Nightly Build
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Custom Tags
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Recent changes in versions 1.16 and 1.15 of WriteTag are causing code that 
worked fine with 1.0 to fail. This bug may be related in some way to: 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=513

In the WriteTag a format String is retrieved for numeric values using 
PropertyMessageResources.getMessage. WriteTag tests for a null return value. In 
this case the PropertyMessageResources.getMessage will never return a null 
because the returnsNull attribute of PropertyMessageResources defaults to 
false. The default is inherited from the MessageResources Class constructor.

When returnsNull is false, the lookup key is returned as the resource 
surrounded by three question marks. As a workaround I added a test in WriteTag 
to test for null or a string that startsWith("???"). That fixed our immediate 
problem. It seems to me that overloading the return value, which should be 
null, with a message is dangerous. But since this behavior is explicitly 
requested when nullReturn is false, I guess it is OK.

In WriteTag.formatValue I changed:
if( formatStr==null) 

To:
if( formatStr==null || formatStr.startsWith("???")) 

This fixed the problem I was experiencing, it seems that calling the 
constructor with true so that a null is returned might be a better fix.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to