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 2015/04/30 09:53:56 UTC

tomee git commit: TOMEE-1569 forcing container loader for LoggerCreator

Repository: tomee
Updated Branches:
  refs/heads/master fc806570f -> 2f977cad9


TOMEE-1569 forcing container loader for LoggerCreator


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/2f977cad
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/2f977cad
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/2f977cad

Branch: refs/heads/master
Commit: 2f977cad93ed229ac1f7ff81d27f5dc056436644
Parents: fc80657
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Apr 30 09:53:40 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu Apr 30 09:53:40 2015 +0200

----------------------------------------------------------------------
 .../openejb/core/ParentClassLoaderFinder.java   |  3 +-
 .../org/apache/openejb/log/LoggerCreator.java   | 29 ++++++++++++--------
 2 files changed, 20 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/2f977cad/container/openejb-core/src/main/java/org/apache/openejb/core/ParentClassLoaderFinder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ParentClassLoaderFinder.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ParentClassLoaderFinder.java
index dca0d39..c6497a1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/ParentClassLoaderFinder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ParentClassLoaderFinder.java
@@ -27,7 +27,8 @@ public interface ParentClassLoaderFinder {
 
     class Helper {
         public static ClassLoader get() {
-            final ParentClassLoaderFinder parentFinder = SystemInstance.get().getComponent(ParentClassLoaderFinder.class);
+            final ParentClassLoaderFinder parentFinder = SystemInstance.isInitialized() ?
+                SystemInstance.get().getComponent(ParentClassLoaderFinder.class) : null;
             if (parentFinder != null) {
                 return parentFinder.getParentClassLoader(FALLBACK);
             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/2f977cad/container/openejb-core/src/main/java/org/apache/openejb/log/LoggerCreator.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/log/LoggerCreator.java b/container/openejb-core/src/main/java/org/apache/openejb/log/LoggerCreator.java
index 47d2935..c1fb803 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/log/LoggerCreator.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/log/LoggerCreator.java
@@ -52,20 +52,27 @@ public class LoggerCreator implements Callable<Logger> {
         if (logger == null) {
             synchronized (this) { // no need of lock for this part
                 if (logger == null) {
+                    final Thread thread = Thread.currentThread();
+                    final ClassLoader originalLoader = thread.getContextClassLoader();
+                    thread.setContextClassLoader(ParentClassLoaderFinder.Helper.get());
                     try {
-                        logger = Logger.getLogger(name);
-                    } catch (final Exception e) {
-                        logger = Logger.getLogger(name); // try again
-                    }
+                        try {
+                            logger = Logger.getLogger(name);
+                        } catch (final Exception e) {
+                            logger = Logger.getLogger(name); // try again
+                        }
 
-                    // if level set through properties force it
-                    final Properties p = SystemInstance.get().getProperties();
-                    final String levelName = p.getProperty("logging.level." + logger.getName());
-                    if (levelName != null) {
-                        final Level level = Level.parse(levelName);
-                        for (final Handler handler : logger.getHandlers()) {
-                            handler.setLevel(level);
+                        // if level set through properties force it
+                        final Properties p = SystemInstance.get().getProperties();
+                        final String levelName = p.getProperty("logging.level." + logger.getName());
+                        if (levelName != null) {
+                            final Level level = Level.parse(levelName);
+                            for (final Handler handler : logger.getHandlers()) {
+                                handler.setLevel(level);
+                            }
                         }
+                    } finally {
+                        thread.setContextClassLoader(originalLoader);
                     }
                 }
             }