You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2018/07/18 22:02:57 UTC
logging-log4j2 git commit: [LOG4J2-2377] NullPointerException in
org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using
Bootstrap classloader.
Repository: logging-log4j2
Updated Branches:
refs/heads/release-2.x 6aed3fbc5 -> c53878aae
[LOG4J2-2377] NullPointerException in
org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using
Bootstrap classloader.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c53878aa
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c53878aa
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c53878aa
Branch: refs/heads/release-2.x
Commit: c53878aae3bed3e93060537105799a843c78c386
Parents: 6aed3fb
Author: Gary Gregory <ga...@gmail.com>
Authored: Wed Jul 18 16:02:54 2018 -0600
Committer: Gary Gregory <ga...@gmail.com>
Committed: Wed Jul 18 16:02:54 2018 -0600
----------------------------------------------------------------------
.../java/org/apache/logging/log4j/util/LoaderUtil.java | 10 ++++++----
src/changes/changes.xml | 3 +++
2 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c53878aa/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
index 2a153b1..bbf3cc7 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
@@ -109,21 +109,23 @@ public final class LoaderUtil {
List<ClassLoader> classLoaders = new ArrayList<>();
ClassLoader tcl = getThreadContextClassLoader();
classLoaders.add(tcl);
+ // Some implementations may use null to represent the bootstrap class loader.
ClassLoader current = LoaderUtil.class.getClassLoader();
- if (current != tcl) {
+ if (current != null && current != tcl) {
classLoaders.add(current);
ClassLoader parent = current.getParent();
while (parent != null && !classLoaders.contains(parent)) {
classLoaders.add(parent);
}
}
- ClassLoader parent = tcl.getParent();
+ ClassLoader parent = tcl == null ? null : tcl.getParent();
while (parent != null && !classLoaders.contains(parent)) {
classLoaders.add(parent);
parent = parent.getParent();
}
- if (!classLoaders.contains(ClassLoader.getSystemClassLoader())) {
- classLoaders.add(ClassLoader.getSystemClassLoader());
+ ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
+ if (!classLoaders.contains(systemClassLoader)) {
+ classLoaders.add(systemClassLoader);
}
return classLoaders.toArray(new ClassLoader[classLoaders.size()]);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c53878aa/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2ffafe4..dde8d70 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -152,6 +152,9 @@
StringBuilders.escapeXml implementation runs in linear time. Escaping large XML strings
in EncodingPatternConverter and MapMessage will perform significantly better.
</action>
+ <action issue="LOG4J2-2377" dev="ggregory" type="fix" due-to="Mirko Rzehak, Gary Gregory">
+ NullPointerException in org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using Bootstrap classloader.
+ </action>
</release>
<release version="2.11.0" date="2018-03-11" description="GA Release 2.11.0">
<action issue="LOG4J2-2104" dev="rgoers" type="fix">