[
https://issues.apache.org/jira/browse/STORM-139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14635194#comment-14635194
]
ASF GitHub Bot commented on STORM-139:
--------------------------------------
Github user HeartSaVioR commented on a diff in the pull request:
https://github.com/apache/storm/pull/641#discussion_r35109156
--- Diff:
storm-core/src/jvm/backtype/storm/grouping/PartialKeyGrouping.java ---
@@ -65,7 +66,11 @@ public void prepare(WorkerTopologyContext context,
GlobalStreamId stream, List<I
List<Object> selectedFields = outFields.select(fields,
values);
ByteBuffer out = ByteBuffer.allocate(selectedFields.size()
* 4);
for (Object o: selectedFields) {
- out.putInt(o.hashCode());
+ if (o instanceof Object[]) {
--- End diff --
@d2r
Could we add same thing (converting List to Object[] by toArray, and apply
Arrays.deepHashCode()) from list-hash-code to this?
> hashCode does not work for byte[]
> ---------------------------------
>
> Key: STORM-139
> URL: https://issues.apache.org/jira/browse/STORM-139
> Project: Apache Storm
> Issue Type: Bug
> Reporter: James Xu
> Priority: Minor
>
> https://github.com/nathanmarz/storm/issues/245
> Storm should use a different hashCode method when getting the hash for a
> byte[] array, since the default one uses the object identity. Should check
> the behavior on other arrays as well
> ----------
> xiaokang: I tested byte[] and other arrays. The hashCode of array is the
> array object identity.
> I alse tested that java.util.Arrays.hashCode(xx[]) is based of the array
> element's hash code. It maybe ok change the list-hash-code function of
> tuple.clj to fix the problem.
> ----------
> Sirwellington: you may want to read this:
> http://martin.kleppmann.com/2012/06/18/java-hashcode-unsafe-for-distributed-systems.html
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)