commit | f30ba9f6380e6755bd5d0065e243bfc253bbd356 | [log] [tgz] |
---|---|---|
author | Sanjeev Kulkarni <sanjeev@streaml.io> | Tue Mar 20 12:36:48 2018 -0700 |
committer | Sanjeev Kulkarni <sanjeev@streaml.io> | Tue Mar 20 12:36:48 2018 -0700 |
tree | 1894a4a24f2c74a76e67cf5eecf9fbde5b4ba8c1 | |
parent | 40385a98aa4d63954c820a721fe3a37ce4d8c40a [diff] |
Check for negative return from % operator
diff --git a/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/JoinCustomGrouping.java b/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/JoinCustomGrouping.java index 3559f64..5e8deb3 100644 --- a/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/JoinCustomGrouping.java +++ b/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/JoinCustomGrouping.java
@@ -47,6 +47,9 @@ List<Integer> ret = new ArrayList<>(); V obj = (V) values.get(0); int index = keyExtractor.apply(obj).hashCode() % taskIds.size(); + if (index < 0) { + index = (index + taskIds.size()) % taskIds.size(); + } ret.add(taskIds.get(index)); return ret; }
diff --git a/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/ReduceByKeyAndWindowCustomGrouping.java b/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/ReduceByKeyAndWindowCustomGrouping.java index 03ef822..5e2d71e 100644 --- a/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/ReduceByKeyAndWindowCustomGrouping.java +++ b/heron/api/src/java/com/twitter/heron/streamlet/impl/groupings/ReduceByKeyAndWindowCustomGrouping.java
@@ -49,6 +49,9 @@ List<Integer> ret = new ArrayList<>(); V obj = (V) values.get(0); int index = keyExtractor.apply(obj).hashCode() % taskIds.size(); + if (index < 0) { + index = (index + taskIds.size()) % taskIds.size(); + } ret.add(taskIds.get(index)); return ret; }