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) {