Repository: beam Updated Branches: refs/heads/master 8f1b4e460 -> 2f400e2ac
Improve Empty Create Default Coder Error Message Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/bb8a771c Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/bb8a771c Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/bb8a771c Branch: refs/heads/master Commit: bb8a771c47e31528b3726bb0f989ca3020a63cf9 Parents: 8f1b4e4 Author: wtanaka.com <[email protected]> Authored: Sat Apr 1 11:29:31 2017 -1000 Committer: Thomas Groh <[email protected]> Committed: Thu Apr 13 09:18:51 2017 -0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/beam/sdk/transforms/Create.java | 7 ++++--- .../test/java/org/apache/beam/sdk/transforms/CreateTest.java | 8 ++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/bb8a771c/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Create.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Create.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Create.java index c074502..5624f2f 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Create.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Create.java @@ -586,9 +586,10 @@ public class Create<T> { throws CannotProvideCoderException { checkArgument( !Iterables.isEmpty(elems), - "Elements must be provided to construct the default Create Coder. To Create an empty " - + "PCollection, either call Create.empty(Coder), or call 'withCoder(Coder)' on the " - + "result PTransform"); + "Can not determine a default Coder for a 'Create' PTransform that " + + "has no elements. Either add elements, call Create.empty(Coder)," + + " Create.empty(TypeDescriptor), or call 'withCoder(Coder)' or " + + "'withType(TypeDescriptor)' on the PTransform."); // First try to deduce a coder using the types of the elements. Class<?> elementClazz = Void.class; for (T elem : elems) { http://git-wip-us.apache.org/repos/asf/beam/blob/bb8a771c/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/CreateTest.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/CreateTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/CreateTest.java index 09f1f96..43e4463 100644 --- a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/CreateTest.java +++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/CreateTest.java @@ -108,9 +108,11 @@ public class CreateTest { p.enableAbandonedNodeEnforcement(false); thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("default Create Coder"); + thrown.expectMessage("determine a default Coder"); thrown.expectMessage("Create.empty(Coder)"); + thrown.expectMessage("Create.empty(TypeDescriptor)"); thrown.expectMessage("withCoder(Coder)"); + thrown.expectMessage("withType(TypeDescriptor)"); p.apply(Create.of(Collections.emptyList())); } @@ -280,9 +282,11 @@ public class CreateTest { p.enableAbandonedNodeEnforcement(false); thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("default Create Coder"); + thrown.expectMessage("determine a default Coder"); thrown.expectMessage("Create.empty(Coder)"); + thrown.expectMessage("Create.empty(TypeDescriptor)"); thrown.expectMessage("withCoder(Coder)"); + thrown.expectMessage("withType(TypeDescriptor)"); p.apply(Create.timestamped(new ArrayList<TimestampedValue<Object>>())); }
