Repository: incubator-beam
Updated Branches:
  refs/heads/master 9f105ec17 -> a760b4c83


[BEAM-117] Window display data should be safe for null windowFn


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/66a5d0d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/66a5d0d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/66a5d0d4

Branch: refs/heads/master
Commit: 66a5d0d4e6a7f6686f11eec9b713d2de21fdda93
Parents: 9f105ec
Author: Scott Wegner <[email protected]>
Authored: Thu May 12 11:32:30 2016 -0700
Committer: Dan Halperin <[email protected]>
Committed: Thu May 12 14:30:47 2016 -0700

----------------------------------------------------------------------
 .../org/apache/beam/sdk/transforms/windowing/Window.java | 10 ++++++----
 .../apache/beam/sdk/transforms/windowing/WindowTest.java | 11 ++++++-----
 2 files changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/66a5d0d4/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
index b9dd451..ab6b7f0 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/Window.java
@@ -599,14 +599,16 @@ public class Window {
     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
       super.populateDisplayData(builder);
-      builder
-          .add(DisplayData.item("windowFn", windowFn.getClass()))
-          .include(windowFn);
+
+      if (windowFn != null) {
+        builder
+            .add(DisplayData.item("windowFn", windowFn.getClass()))
+            .include(windowFn);
+      }
 
       if (allowedLateness != null) {
         builder.addIfNotDefault(DisplayData.item("allowedLateness", 
allowedLateness),
             Duration.millis(BoundedWindow.TIMESTAMP_MAX_VALUE.getMillis()));
-
       }
 
       if (trigger != null && !(trigger instanceof DefaultTrigger)) {

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/66a5d0d4/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/windowing/WindowTest.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/windowing/WindowTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/windowing/WindowTest.java
index 885f549..cd5eb2d 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/windowing/WindowTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/windowing/WindowTest.java
@@ -272,16 +272,17 @@ public class WindowTest implements Serializable {
 
   @Test
   public void testDisplayDataExcludesUnspecifiedProperties() {
-    Window.Bound<?> window = Window.into(new GlobalWindows());
-
-    DisplayData displayData = DisplayData.from(window);
-    assertThat(displayData, not(hasDisplayItem(hasKey(isOneOf(
+    Window.Bound<?> onlyHasAccumulationMode = 
Window.named("foobar").discardingFiredPanes();
+    assertThat(DisplayData.from(onlyHasAccumulationMode), 
not(hasDisplayItem(hasKey(isOneOf(
+        "windowFn",
         "trigger",
         "outputTimeFn",
-        "accumulationMode",
         "allowedLateness",
         "closingBehavior")))));
 
+    Window.Bound<?> noAccumulationMode = Window.into(new GlobalWindows());
+    assertThat(DisplayData.from(noAccumulationMode),
+        not(hasDisplayItem(hasKey("accumulationMode"))));
   }
 
   @Test

Reply via email to