You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by da...@apache.org on 2016/04/06 19:37:52 UTC
[1/2] incubator-beam git commit: Stop nesting Nullable coders
Repository: incubator-beam
Updated Branches:
refs/heads/master 6b408b2a3 -> e3f2d9564
Stop nesting Nullable coders
A single layer of nullable coders is sufficient to safely encode
possibly-null values. This allows use of NullableCoder#of to wrap any
coder, without duplicating null-safety logic applied by NullableCoder.
This change is not update compatible.
Fixes BEAM-44
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/b74725b4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/b74725b4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/b74725b4
Branch: refs/heads/master
Commit: b74725b4e455bacbe89569171dbd69d9229c91a7
Parents: 6b408b2
Author: Thomas Groh <tg...@google.com>
Authored: Wed Apr 6 10:07:29 2016 -0700
Committer: Davor Bonaci <da...@google.com>
Committed: Wed Apr 6 10:25:42 2016 -0700
----------------------------------------------------------------------
.../com/google/cloud/dataflow/sdk/coders/NullableCoder.java | 3 +++
.../google/cloud/dataflow/sdk/coders/NullableCoderTest.java | 7 +++++++
2 files changed, 10 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/b74725b4/sdks/java/core/src/main/java/com/google/cloud/dataflow/sdk/coders/NullableCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/com/google/cloud/dataflow/sdk/coders/NullableCoder.java b/sdks/java/core/src/main/java/com/google/cloud/dataflow/sdk/coders/NullableCoder.java
index c062142..fc12a03 100644
--- a/sdks/java/core/src/main/java/com/google/cloud/dataflow/sdk/coders/NullableCoder.java
+++ b/sdks/java/core/src/main/java/com/google/cloud/dataflow/sdk/coders/NullableCoder.java
@@ -43,6 +43,9 @@ import javax.annotation.Nullable;
*/
public class NullableCoder<T> extends StandardCoder<T> {
public static <T> NullableCoder<T> of(Coder<T> valueCoder) {
+ if (valueCoder instanceof NullableCoder) {
+ return (NullableCoder<T>) valueCoder;
+ }
return new NullableCoder<>(valueCoder);
}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/b74725b4/sdks/java/core/src/test/java/com/google/cloud/dataflow/sdk/coders/NullableCoderTest.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/test/java/com/google/cloud/dataflow/sdk/coders/NullableCoderTest.java b/sdks/java/core/src/test/java/com/google/cloud/dataflow/sdk/coders/NullableCoderTest.java
index 8f9bd84..7628dff 100644
--- a/sdks/java/core/src/test/java/com/google/cloud/dataflow/sdk/coders/NullableCoderTest.java
+++ b/sdks/java/core/src/test/java/com/google/cloud/dataflow/sdk/coders/NullableCoderTest.java
@@ -18,8 +18,10 @@
package com.google.cloud.dataflow.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.theInstance;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import com.google.cloud.dataflow.sdk.testing.CoderProperties;
@@ -130,4 +132,9 @@ public class NullableCoderTest {
TEST_CODER.decode(input, Coder.Context.OUTER);
}
+ @Test
+ public void testNestedNullableCoder() {
+ NullableCoder<Double> coder = NullableCoder.of(DoubleCoder.of());
+ assertThat(NullableCoder.of(coder), theInstance(coder));
+ }
}
[2/2] incubator-beam git commit: This closes #136
Posted by da...@apache.org.
This closes #136
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/e3f2d956
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/e3f2d956
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/e3f2d956
Branch: refs/heads/master
Commit: e3f2d9564e0f9fbc3cf200f7b321b51019e1c64c
Parents: 6b408b2 b74725b
Author: Davor Bonaci <da...@google.com>
Authored: Wed Apr 6 10:25:53 2016 -0700
Committer: Davor Bonaci <da...@google.com>
Committed: Wed Apr 6 10:25:53 2016 -0700
----------------------------------------------------------------------
.../com/google/cloud/dataflow/sdk/coders/NullableCoder.java | 3 +++
.../google/cloud/dataflow/sdk/coders/NullableCoderTest.java | 7 +++++++
2 files changed, 10 insertions(+)
----------------------------------------------------------------------