logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ralph Goers (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-169) LogManager.getLogger doesn't work
Date Sun, 03 Mar 2013 21:57:12 GMT

    [ 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: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message