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>

Reply via email to