[ https://issues.apache.org/jira/browse/MYFACES-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17086927#comment-17086927 ]
Thomas Andraschko commented on MYFACES-4330: -------------------------------------------- Nevermind :) had some time now to do it i checked all places in master; i think this code was developed for JDK1.5 and it didn't contain the containsKey method. I will also apply your patch to 2.2., 2.3 and 3.0 now thank you for your good first contribution! Can i ask you how did find that performance improvement? I did many perf stuff in master the last year. > [perf] Bad performance of ResourceHandlerImpl because of unnecessary > MissingResourceException > --------------------------------------------------------------------------------------------- > > Key: MYFACES-4330 > URL: https://issues.apache.org/jira/browse/MYFACES-4330 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.2.12 > Reporter: Reto Weiss > Priority: Major > Attachments: myfaces.patch > > > While processing JSF resource requests a lot of MissingResourceExceptions are > thrown and catched right afterwards if you have a message bundle installed > but no resource for the key 'javax.faces.resource.localePrefix' is provided > (like in the case of Primefaces). > This can lead to performance problems because creating and throwing an > exception is a heavy operation. The throwing of the exception can be > prevented by first checking if a resource contains a certain resource before > accessing it: > try { > ResourceBundle bundle = ResourceBundle > .getBundle(bundleName, locale, > ClassUtils.getContextClassLoader()); if (bundle != null) > { if > (bundle.containsKey(ResourceHandler.LOCALE_PREFIX)) > \{ > localePrefix = > bundle.getString(ResourceHandler.LOCALE_PREFIX); > } > } > } catch (MissingResourceException e) > { // Ignore it and return null } > By applying the above patch I see a 50% reduction of the execution time of > the method createResource. -- This message was sent by Atlassian Jira (v8.3.4#803005)