Repository: logging-log4j2 Updated Branches: refs/heads/master 5f429f79e -> d3989b40f
[LOG4J2-834] ThrowableProxy throws NoClassDefFoundError. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d3989b40 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d3989b40 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d3989b40 Branch: refs/heads/master Commit: d3989b40f92cdf2a7a0bc8a8d4d883386a640ebb Parents: 5f429f7 Author: Gary Gregory <[email protected]> Authored: Mon Dec 1 00:21:18 2014 -0500 Committer: Gary Gregory <[email protected]> Committed: Mon Dec 1 00:21:18 2014 -0500 ---------------------------------------------------------------------- .../logging/log4j/core/impl/ThrowableProxy.java | 18 +++++++++++++----- src/changes/changes.xml | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d3989b40/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java index 75c8564..3aadf6c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java @@ -451,15 +451,23 @@ public class ThrowableProxy implements Serializable { try { clazz = Loader.loadClass(className); } catch (final ClassNotFoundException ignored) { - try { - clazz = Loader.initializeClass(className, this.getClass().getClassLoader()); - } catch (final ClassNotFoundException ignore) { - return null; - } + return initializeClass(className); + } catch (final NoClassDefFoundError ignored) { + return initializeClass(className); } return clazz; } + private Class<?> initializeClass(final String className) { + try { + return Loader.initializeClass(className, this.getClass().getClassLoader()); + } catch (final ClassNotFoundException ignore) { + return null; + } catch (final NoClassDefFoundError ignore) { + return null; + } + } + /** * Construct the CacheEntry from the Class's information. * http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d3989b40/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 1f884b9..bdf9375 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -35,8 +35,8 @@ <action issue="LOG4J2-903" dev="ggregory" type="fix" due-to="Mauro Molinari"> ClassLoaderContextSelector uses ClassLoader.toString() as a key </action> - <action issue="LOG4J2-834" dev="ggregory" type="fix"> - NoClassDefFoundError in ThrowableProxy. + <action issue="LOG4J2-834" dev="ggregory" type="fix" due-to="Nikita Koval, Leonard Broman, Thiago Kronig"> + ThrowableProxy throws NoClassDefFoundError. </action> <action issue="LOG4J2-893" dev="ggregory" type="fix"> NullPointerException on filter when mapping JUL to Log4j2.
