Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.0-beta4
Description
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>();