You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by st...@apache.org on 2015/05/17 13:20:53 UTC
[07/37] tomee git commit: TOMEE-1569 forcing container loader for
LoggerCreator
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/0421a028
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/0421a028
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/0421a028
Branch: refs/heads/master
Commit: 0421a028293a09037b5d5074bda39a3f366bdaa3
Parents: b7eb5b0
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Apr 30 09:53:40 2015 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Mon May 4 19:00:19 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/0421a028/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/0421a028/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);
}
}
}