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;
     }
   }
 

Reply via email to