This is an automated email from the ASF dual-hosted git repository.

altay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new f7cddfd  Fix NonDeterministicException#getMessage (#6526)
f7cddfd is described below

commit f7cddfdab5df8b8b7c84559b0db4c650ff60dd34
Author: Gleb Kanterov <kante...@users.noreply.github.com>
AuthorDate: Thu Oct 18 03:04:05 2018 +0200

    Fix NonDeterministicException#getMessage (#6526)
    
    * Fix NonDeterministicException#getMessage
---
 .../src/main/java/org/apache/beam/sdk/coders/Coder.java |  4 ++--
 .../test/java/org/apache/beam/sdk/coders/CoderTest.java | 17 ++++++++++++++++-
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
index a0f4969..77479c1 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
@@ -344,8 +344,8 @@ public abstract class Coder<T> implements Serializable {
 
     @Override
     public String getMessage() {
-      return String.format(
-          "%s is not deterministic because:%n  %s", coder, Joiner.on("%n  
").join(reasons));
+      String reasonsStr = Joiner.on("\n\t").join(reasons);
+      return coder + " is not deterministic because:\n\t" + reasonsStr;
     }
   }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderTest.java
index 4a36d38..4ff6130 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertThat;
 
+import java.util.Arrays;
 import java.util.Collections;
 import org.apache.beam.sdk.coders.Coder.Context;
 import org.apache.beam.sdk.coders.Coder.NonDeterministicException;
@@ -59,7 +60,7 @@ public class CoderTest {
   }
 
   @Test
-  public void testNonDeterministicExcpetionRequiresReason() {
+  public void testNonDeterministicExceptionRequiresReason() {
     expectedException.expect(IllegalArgumentException.class);
     expectedException.expectMessage("Reasons must not be empty");
     new NonDeterministicException(VoidCoder.of(), Collections.emptyList());
@@ -78,6 +79,20 @@ public class CoderTest {
   }
 
   @Test
+  public void testNonDeterministicExceptionMultipleReasons() {
+    NonDeterministicException rootCause =
+        new NonDeterministicException(VoidCoder.of(), "Root Cause");
+    NonDeterministicException exception =
+        new NonDeterministicException(
+            StringUtf8Coder.of(), Arrays.asList("Problem1", "Problem2"), 
rootCause);
+
+    String expectedMessage =
+        "StringUtf8Coder is not deterministic 
because:\n\tProblem1\n\tProblem2";
+
+    assertThat(exception.getMessage(), equalTo(expectedMessage));
+  }
+
+  @Test
   public void testTypeIsPreserved() throws Exception {
     assertThat(VoidCoder.of().getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Void.class)));
   }

Reply via email to