Enforce correctness of consistentWithEquals and fix broken hashCode() method for AuctionOrBidWindowCoder
Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/e93c0357 Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/e93c0357 Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/e93c0357 Branch: refs/heads/master Commit: e93c035711290d8c8ccefdae2e314faef7164179 Parents: bdc738e Author: Daniel Mills <mil...@google.com> Authored: Wed Sep 13 10:08:22 2017 -0700 Committer: Daniel Mills <mil...@google.com> Committed: Wed Sep 13 10:08:22 2017 -0700 ---------------------------------------------------------------------- .../java/org/apache/beam/sdk/nexmark/queries/WinningBids.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/e93c0357/sdks/java/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/WinningBids.java ---------------------------------------------------------------------- diff --git a/sdks/java/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/WinningBids.java b/sdks/java/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/WinningBids.java index efdbe21..be64958 100644 --- a/sdks/java/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/WinningBids.java +++ b/sdks/java/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/WinningBids.java @@ -155,7 +155,7 @@ public class WinningBids extends PTransform<PCollection<Event>, PCollection<Auct } @Override public int hashCode() { - return Objects.hash(isAuctionWindow, auction); + return Objects.hash(super.hashCode(), isAuctionWindow, auction); } } @@ -167,6 +167,8 @@ public class WinningBids extends PTransform<PCollection<Event>, PCollection<Auct private static final Coder<IntervalWindow> SUPER_CODER = IntervalWindow.getCoder(); private static final Coder<Long> ID_CODER = VarLongCoder.of(); private static final Coder<Integer> INT_CODER = VarIntCoder.of(); + private static final boolean CONSISTENT_WITH_EQUALS = SUPER_CODER.consistentWithEquals() + && ID_CODER.consistentWithEquals() && INT_CODER.consistentWithEquals(); @JsonCreator public static AuctionOrBidWindowCoder of() { @@ -195,7 +197,7 @@ public class WinningBids extends PTransform<PCollection<Event>, PCollection<Auct @Override public boolean consistentWithEquals() { - return true; + return CONSISTENT_WITH_EQUALS; } }