You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by al...@apache.org on 2018/10/18 01:04:13 UTC
[beam] branch master updated: Fix
NonDeterministicException#getMessage (#6526)
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 <ka...@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)));
}