[ 
https://issues.apache.org/jira/browse/TRINIDAD-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Prakash Udupa updated TRINIDAD-2473:
------------------------------------

    Status: Patch Available  (was: Open)

> Improve diagnostic support for resource bundle feature in skinning framework
> ----------------------------------------------------------------------------
>
>                 Key: TRINIDAD-2473
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2473
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Skinning
>    Affects Versions: 2.1.0-core
>            Reporter: Prakash Udupa
>         Attachments: TRINIDAD-2473.trunk.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> We had difficulty diagnosing a skinning issue where the server logs reported 
> some translated keys not being able to be resolved to its value in the 
> resource bundle attached to the skins. 
> There are messages like these two in the logs:
> 1. 
> <17.02.2014 21:22 Uhr MEZ> <Error>
> <org.apache.myfaces.trinidad.context.RenderingContext> <BEA-000000>
> <Ressourcenschlüssel af_document.LABEL_SPLASH_SCREEN konnte nicht aus Skin
> gsr40518e9c_5b59_459a_8d71_85d8a9d30676.desktop abgerufen werden> 
> 2.
> <17.02.2014 21:23 Uhr MEZ> <Error> <HTTP> <BEA-101020>
> <[ServletContext@797966157[app:de_arbeitsagentur_portal module:apps
> path:/apps spec-version:2.5 version:1.0.0.5.159]] Servlet failed with
> Exception
> java.util.MissingResourceException: Can't find resource for bundle
> at
> org.apache.myfaces.trinidadinternal.skin.SkinImpl.getTranslatedValue(SkinImpl.
> java:183) 
> =======
> These are not as useful because they do not give the details of skin or the 
> bundle class that is expected to resolve it, or how in the skin hierarchy 
> this was resolved (or lack of). Relevant code is here:
> =======
> In RenderingContext.getTranslatedString():
> try
> {
>   return getSkin().getTranslatedString(getLocaleContext(), key);
> }
> catch (MissingResourceException mre)
> {
>   // Instead of halting execution, return "???<key>???",
>   // just like JSF and JSTL will do, and log a severe error
>   _LOG.severe("CANNOT_GET_RESOURCE_KEY", new String[]{key, 
> getSkin().getId()});
>   return "???" + key + "???";
> } 
> This would not tell if the bundle was read properly in the first place.
> The issue is more evident in this code in SkinImpl.getTranslatedValue(): 
> if (translatedValue == null)
> {
>   throw new MissingResourceException("Can't find resource for bundle",
>                                      getBundleName(),
>                                      key);
> } 
> Although the bundle name and key is passed to the exception, it does not get 
> included in the message in the log, this information should be included in 
> the first parameter.
> ========
> This issue is to track the needed improvement in logging here to improve 
> debug-ability. Will provide a patch soon.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to