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 <rmannibu...@apache.org> Authored: Thu Apr 30 09:53:40 2015 +0200 Committer: Romain Manni-Bucau <rmannibu...@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); } } }