[
https://issues.apache.org/jira/browse/LOG4J2-169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13591880#comment-13591880
]
Ralph Goers commented on LOG4J2-169:
------------------------------------
Making the change as you propose has the side effect of causing the
initialization to occur when the ConfigurationFactory class is first referenced
instead of when an instance of the ConfigurationFactory is required. Doing that
would cause the createFactories method to try to create instances of the
ConfigurationFactory class while that class hasn't finished initializing, which
I don't think is a good idea.
> LogManager.getLogger doesn't work
> ---------------------------------
>
> Key: LOG4J2-169
> URL: https://issues.apache.org/jira/browse/LOG4J2-169
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0-beta4
> Reporter: Jed Wesley-Smith
> Priority: Critical
> Labels: thread-safety
>
> We randomly get the following:
> java.util.ConcurrentModificationException
> at
> org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:377)
> at
> org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:361)
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:266)
> at
> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:134)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:75)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:30)
> at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:165)
> at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:174)
> at …
> factories is defined as:
> private static List<ConfigurationFactory> factories = new
> ArrayList<ConfigurationFactory>();
> The simple fix is to use a java.util.concurrent.CopyOnWriteArrayList:
> private static final List<ConfigurationFactory> factories = new
> CopyOnWriteArrayList<ConfigurationFactory>();
> https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]