Bill Lucy created MYFACES-4320:
----------------------------------

             Summary: Startup ConcurrentModificationException in 
DefaultFacesConfigurationProvider
                 Key: MYFACES-4320
                 URL: https://issues.apache.org/jira/browse/MYFACES-4320
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.3.6, 2.2.12
            Reporter: Bill Lucy
            Assignee: Bill Lucy


In an environment with multiple apps, it's possible to hit a 
_ConcurrentModificationException_ during startup:

Caused by: java.util.ConcurrentModificationException
 at java.util.HashMap$HashIterator.nextNode(HashMap.java:1456)
 at java.util.HashMap$KeyIterator.next(HashMap.java:1480)
 at 
org.apache.myfaces.config.DefaultFacesConfigurationProvider.getMetaInfServicesFacesConfig(DefaultFacesConfigurationProvider.java:218)

This occurs because _Set<String> FACTORY_NAMES_ is static, but the 
initialization block following it is not. So it's possible for that 
initialization block to get run - if a new _DefaultFacesConfigurationProvider_ 
is initialized at the right time - while another instance is iterating over the 
set. The fix is to make the initialization block static, which we just need to 
backport from the master branch.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to