Repository: logging-log4j2 Updated Branches: refs/heads/master 683c91397 -> f8a421972
[LOG4J2-914] ThrowableProxy.getExtendedStackTraceAsString causes NullpointerException. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f8a42197 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f8a42197 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f8a42197 Branch: refs/heads/master Commit: f8a421972a4858bf2026d757f5d1bea7c1062a35 Parents: 683c913 Author: Gary Gregory <[email protected]> Authored: Fri Dec 5 10:09:26 2014 -0500 Committer: Gary Gregory <[email protected]> Committed: Fri Dec 5 10:09:26 2014 -0500 ---------------------------------------------------------------------- .../apache/logging/log4j/core/impl/ThrowableProxy.java | 3 ++- .../logging/log4j/core/impl/ThrowableProxyTest.java | 10 ++++++++++ src/changes/changes.xml | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f8a42197/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 2d0941f..1d3af2a 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 @@ -342,7 +342,8 @@ public class ThrowableProxy implements Serializable { sb.append(": ").append(msg); } sb.append(EOL); - this.formatElements(sb, 0, this.throwable.getStackTrace(), this.extendedStackTrace, ignorePackages); + StackTraceElement[] causedTrace = this.throwable != null ? this.throwable.getStackTrace() : null; + this.formatElements(sb, 0, causedTrace, this.extendedStackTrace, ignorePackages); this.formatCause(sb, this.causeProxy, ignorePackages); return sb.toString(); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f8a42197/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThrowableProxyTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThrowableProxyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThrowableProxyTest.java index fbcb87d..850f5fb 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThrowableProxyTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ThrowableProxyTest.java @@ -137,6 +137,16 @@ public class ThrowableProxyTest { } @Test + public void testSerialization_getExtendedStackTraceAsString() throws Exception { + final Throwable throwable = new IllegalArgumentException("This is a test"); + final ThrowableProxy proxy = new ThrowableProxy(throwable); + final byte[] binary = serialize(proxy); + final ThrowableProxy proxy2 = deserialize(binary); + + assertEquals(proxy.getExtendedStackTraceAsString(), proxy2.getExtendedStackTraceAsString()); + } + + @Test public void testSerializationWithUnknownThrowable() throws Exception { final String msg = "OMG I've been deleted!"; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f8a42197/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 0511446..fe61725 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -32,6 +32,9 @@ Specify the SocketAppender connect timeout value as part of the configuration. The new appender takes a new parameter connectTimeoutMillis. </action> + <action issue="LOG4J2-914" dev="ggregory" type="fix" due-to="Kaj Bjurman"> + ThrowableProxy.getExtendedStackTraceAsString causes NullpointerException. + </action> <action issue="LOG4J2-912" dev="ggregory" type="fix"> XML configuration does not report full error message for XInclude parser configuration problems. </action>
