Repository: incubator-beam
Updated Branches:
  refs/heads/master a87015bfe -> 603f337b1


Fix Exception Unwrapping in TestFlinkRunner


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/695a80a7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/695a80a7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/695a80a7

Branch: refs/heads/master
Commit: 695a80a7df12887df088d0c094177a80edc69ae2
Parents: 79dcc6b
Author: Aljoscha Krettek <aljoscha.kret...@gmail.com>
Authored: Sat Aug 20 10:37:42 2016 +0200
Committer: Kenneth Knowles <k...@google.com>
Committed: Wed Aug 24 12:46:24 2016 -0700

----------------------------------------------------------------------
 .../beam/runners/flink/TestFlinkRunner.java      | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/695a80a7/runners/flink/runner/src/main/java/org/apache/beam/runners/flink/TestFlinkRunner.java
----------------------------------------------------------------------
diff --git 
a/runners/flink/runner/src/main/java/org/apache/beam/runners/flink/TestFlinkRunner.java
 
b/runners/flink/runner/src/main/java/org/apache/beam/runners/flink/TestFlinkRunner.java
index 2a82749..6a4f990 100644
--- 
a/runners/flink/runner/src/main/java/org/apache/beam/runners/flink/TestFlinkRunner.java
+++ 
b/runners/flink/runner/src/main/java/org/apache/beam/runners/flink/TestFlinkRunner.java
@@ -62,13 +62,22 @@ public class TestFlinkRunner extends 
PipelineRunner<FlinkRunnerResult> {
       FlinkRunnerResult result = delegate.run(pipeline);
 
       return result;
-    } catch (RuntimeException e) {
+    } catch (Throwable e) {
       // Special case hack to pull out assertion errors from PAssert; instead 
there should
       // probably be a better story along the lines of UserCodeException.
-      if (e.getCause() != null
-          && e.getCause() instanceof JobExecutionException
-          && e.getCause().getCause() instanceof AssertionError) {
-          throw (AssertionError) e.getCause().getCause();
+      Throwable cause = e;
+      Throwable oldCause = e;
+      do {
+        if (cause.getCause() == null) {
+          break;
+        }
+
+        oldCause = cause;
+        cause = cause.getCause();
+
+      } while (!oldCause.equals(cause));
+      if (cause instanceof AssertionError) {
+        throw (AssertionError) cause;
       } else {
         throw e;
       }

Reply via email to