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))); }