You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fh...@apache.org on 2017/05/03 12:10:46 UTC

[39/50] [abbrv] flink git commit: [hotfix] [runtime] SerializedThrowable copy constructor preserves cause

[hotfix] [runtime] SerializedThrowable copy constructor preserves cause


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/03721cff
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/03721cff
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/03721cff

Branch: refs/heads/table-retraction
Commit: 03721cff116bc3d233b6b3f82c47f9edf42410af
Parents: 6f93352
Author: Stephan Ewen <se...@apache.org>
Authored: Tue May 2 19:33:28 2017 +0200
Committer: Stephan Ewen <se...@apache.org>
Committed: Tue May 2 22:49:46 2017 +0200

----------------------------------------------------------------------
 .../flink/runtime/util/SerializedThrowable.java       |  2 ++
 .../flink/runtime/util/SerializedThrowableTest.java   | 14 ++++++++++++++
 2 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/03721cff/flink-runtime/src/main/java/org/apache/flink/runtime/util/SerializedThrowable.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/util/SerializedThrowable.java b/flink-runtime/src/main/java/org/apache/flink/runtime/util/SerializedThrowable.java
index 4dea59c..ed485d0 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/util/SerializedThrowable.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/util/SerializedThrowable.java
@@ -108,6 +108,8 @@ public class SerializedThrowable extends Exception implements Serializable {
 			this.originalErrorClassName = other.originalErrorClassName;
 			this.fullStingifiedStackTrace = other.fullStingifiedStackTrace;
 			this.cachedException = other.cachedException;
+			this.setStackTrace(other.getStackTrace());
+			this.initCause(other.getCause());
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/flink/blob/03721cff/flink-runtime/src/test/java/org/apache/flink/runtime/util/SerializedThrowableTest.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/util/SerializedThrowableTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/util/SerializedThrowableTest.java
index 4d57892..45988f5 100644
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/util/SerializedThrowableTest.java
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/util/SerializedThrowableTest.java
@@ -175,4 +175,18 @@ public class SerializedThrowableTest {
 		assertArrayEquals(root.getStackTrace(), st.getStackTrace());
 		assertEquals(ExceptionUtils.stringifyException(root), ExceptionUtils.stringifyException(st));
 	}
+
+	@Test
+	public void testCopyPreservesCause() {
+		Exception original = new Exception("original message");
+		Exception parent = new Exception("parent message", original);
+
+		SerializedThrowable serialized = new SerializedThrowable(parent);
+		assertNotNull(serialized.getCause());
+
+		SerializedThrowable copy = new SerializedThrowable(serialized);
+		assertEquals("parent message", copy.getMessage());
+		assertNotNull(copy.getCause());
+		assertEquals("original message", copy.getCause().getMessage());
+	}
 }