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(+)
----------------------------------------------------------------------