[ https://issues.apache.org/jira/browse/MYFACES-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17085977#comment-17085977 ]
Thomas Andraschko edited comment on MYFACES-4330 at 4/19/20, 11:26 AM: ----------------------------------------------------------------------- Great patch! Nevertheless, you can create PRs here: [https://github.com/apache/myfaces] Please note: we need at least a PR for master, 2.3.x and 3.0.x If you would like to see it in 2.2, we also need a PR for the 2.2.x branch was (Author: tandraschko): Great patch! DO you have some numbers of the performance improvements? Nevertheless, you can create PRs here: [https://github.com/apache/myfaces] Please note: we need at least a PR for master, 2.3.x and 3.0.x If you would like to see it in 2.2, we also need a PR for the 2.2.x branch > [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 > Fix For: 2.2.13, 2.3.7, 3.0.0, 2.3-next-M3 > > 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)