[
https://issues.apache.org/jira/browse/STORM-139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14635467#comment-14635467
]
ASF GitHub Bot commented on STORM-139:
--------------------------------------
Github user d2r commented on a diff in the pull request:
https://github.com/apache/storm/pull/641#discussion_r35130923
--- Diff: storm-core/src/clj/backtype/storm/tuple.clj ---
@@ -15,8 +15,11 @@
;; limitations under the License.
(ns backtype.storm.tuple
- (:import [java.util List]))
+ (:import [java.util Arrays List]))
(defn list-hash-code
[^List alist]
- (.hashCode alist))
+ (if (nil? alist)
+ 1
+ (let [^"[Ljava.lang.Object;" array (.toArray alist)] ;; Object[]
+ (Arrays/deepHashCode array))))
--- End diff --
The type hint here seems to be unnecessary. I'll remove it.
> 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)