You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/03/25 07:31:56 UTC
svn commit: r1581257 -
/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java
Author: rmannibucau
Date: Tue Mar 25 06:31:55 2014
New Revision: 1581257
URL: http://svn.apache.org/r1581257
Log:
logger of observerManager needs to be init lazily
Modified:
tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java
Modified: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java?rev=1581257&r1=1581256&r2=1581257&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java (original)
+++ tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java Tue Mar 25 06:31:55 2014
@@ -37,6 +37,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -49,7 +50,8 @@ public class ObserverManager {
}
};
- private static final Logger LOGGER = Logger.getLogger(ObserverManager.class.getName());
+ // lazy init since it is used in SystemInstance
+ private static final AtomicReference<Logger> LOGGER = new AtomicReference<Logger>();
private final Set<Observer> observers = new LinkedHashSet<Observer>();
private final Map<Class, Invocation> methods = new ConcurrentHashMap<Class, Invocation>();
@@ -399,9 +401,9 @@ public class ObserverManager {
}
if (t instanceof InvocationTargetException && t.getCause() != null) {
- LOGGER.log(Level.SEVERE, "error invoking " + observer, t.getCause());
+ logger().log(Level.SEVERE, "error invoking " + observer, t.getCause());
} else {
- LOGGER.log(Level.SEVERE, "error invoking " + observer, t);
+ logger().log(Level.SEVERE, "error invoking " + observer, t);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
@@ -414,6 +416,16 @@ public class ObserverManager {
}
}
+ // done lazily since this class is used in SystemInstance
+ private static Logger logger() {
+ Logger value = LOGGER.get();
+ if (value == null) {
+ value = Logger.getLogger(ObserverManager.class.getName());
+ LOGGER.set(value);
+ }
+ return value;
+ }
+
private class AfterInvocation extends MethodInvocation {
private AfterInvocation(Method method, Object observer) {