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
