Thanks for bug reporting! I will change it!
Henner

> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag von 
> Roberto Bagnoli
> Gesendet: Donnerstag, 11. März 2004 12:23
> An: [EMAIL PROTECTED]
> Betreff: [dbforms] Bug in application resources management
> 
> Hi all!
> I'd like to inform the development team of what it seems a little bug 
> in i18n resources management, that causes NullPointerException in 
> errors tag rendering, when DbForms application are configured without 
> internationalization support (that is, no "resourceBundle" parameter 
> specified in web.xml).
> 
> Walking thru the code i've found that the 
> org.dbforms.servlets.ConfigServlet initializes i18n calling the 
> protected method initApplicationResources(), which has the 
> responsability to call
> MessageResources.setSubClass(String) to define the i18n ResourceBundle 
> class.
> 
> The logging messages written by
> ConfigServlet ::initApplicationResources() states that if 
> "resourceBundle" init parameter is not present, i18n will be disabled, 
> and this is handled returning without calling 
> MessageResources.setSubClass(String),
> leaving msgRes attribute of MessageResources uninitialized.
> But that case is not correctly handled by MessageResources class, 
> where we found the methods:
> 
> [snip]
>     ....
>     
> /******************************************************************
>      *  Retrieve message from ResourceBundle.
>      *  If the ResourceBundle is not yet cached, cache it
>      *  and retreive message.
>      *
>      *  @param  <code>String</code> : Message key to lookup.
>      *  @param  <code>Locale</code> : Locale object to map message
>      *          with good ResourceBundle.
>      *
>      *  @return <code>String</code> : Message resolve, null if not 
> found.
>      
> *******************************************************************/
>     public static String getMessage(String msg, Locale loc)
>     {
>        return msgRes.getMessage(msg, loc);
>     }
> 
>     
> /******************************************************************
>      * Retrieve message from ResourceBundle and replace parameter 
> "{x}"
>      * with values in parms array.
>      *
>      * @param  <code>String</code> : Message key to lookup.
>      * @param  <code>Locale</code> : Locale object to map message with
>      *         good ResourceBundle.
>      * @param  <code>String[]</code> : Parameters to replace "{x}" in
>      *         message .
>      *
>      * @return <code>String</code> : Message resolve with parameter
>      *         replaced, null if message key not found.
>      
> ******************************************************************/
>     public static String getMessage(String msg, Locale loc, String[] 
> parms)
>     {
>        return msgRes.getMessage(msg, loc, parms);
>     }
>    ....
> [snip]
> 
> which don't test for msgRes == null before using it, violating the 
> post-condition documented into code.
> 
> If the behaviour of ConfigServlet is correct, then MessageResources  
> implementation must be changed  as follow:
> 
> [snip]
>     ....
>     public static String getMessage(String msg, Locale loc)
>     {
>        return (msgRes == null)?null:msgRes.getMessage(msg, loc);
>     }
> 
>     ....
> 
>     public static String getMessage(String msg, Locale loc, String[] 
> parms)
>     {
>        return (msgRes == null)?null:msgRes.getMessage(msg, loc, 
> parms);
>     }
>    ....
> [snip]
> 
> If this not apply, then "resourceBundle" init parameter must be stated 
> mandatory and ConfigServlet implementation must be changed.
> 
> 
> Hope this could help
> Roberto
> 
> 
> 
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux 
> tutorial presented by Daniel Robbins, President and CEO of GenToo 
> technologies. Learn everything from fundamentals to system 
> administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> _______________________________________________
> DbForms Mailing List
> 
> http://www.wap-force.net/dbforms
> 



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
DbForms Mailing List

http://www.wap-force.net/dbforms

Reply via email to