Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7643B112E5 for ; Thu, 25 Sep 2014 10:23:34 +0000 (UTC) Received: (qmail 97202 invoked by uid 500); 25 Sep 2014 10:23:34 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 97119 invoked by uid 500); 25 Sep 2014 10:23:34 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 97107 invoked by uid 99); 25 Sep 2014 10:23:34 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Sep 2014 10:23:34 +0000 Date: Thu, 25 Sep 2014 10:23:33 +0000 (UTC) From: "Duncan Jones (JIRA)" To: issues@commons.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (LANG-1039) HashCodeBuilder.reflectionHashCode(Object object) returns always the same result for any array MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/LANG-1039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14147601#comment-14147601 ] Duncan Jones commented on LANG-1039: ------------------------------------ The first line in the Javadoc for the {{HashCodeBuilder}} is: bq. Assists in implementing {{Object.hashCode()}} methods. In other words. the supported use case is generating a hash code for your own custom class. You either do this manually by appending fields to the hash code builder, or you use the reflective builder: {code:java} public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } {code} There is no expectation that {{reflectionHashCode()}} will be passed a primitive array object. I see no reason to change this behaviour, given the documented intention of the class. > HashCodeBuilder.reflectionHashCode(Object object) returns always the same result for any array > ---------------------------------------------------------------------------------------------- > > Key: LANG-1039 > URL: https://issues.apache.org/jira/browse/LANG-1039 > Project: Commons Lang > Issue Type: Bug > Components: lang.builder.* > Affects Versions: 3.3.2 > Environment: Windows 7, Java 6 > Reporter: Bartosz Paszkowski > > HashCodeBuilder.reflectionHashCode(Object object) returns always the same result for any array. The result is 17. > There is no information in javadoc, that this method works in that way. > The same situation in previous versions. > *Example:* > {code} > public class HashCodeBuilderTest { > > public static void main(String[] args) { > > System.out.println(HashCodeBuilder.reflectionHashCode(new double[] {1, 1})); > System.out.println(HashCodeBuilder.reflectionHashCode(new double[] {2, 2})); > System.out.println(HashCodeBuilder.reflectionHashCode(new int[] {3, 3})); > System.out.println(HashCodeBuilder.reflectionHashCode(new int[] {4, 4})); > System.out.println(HashCodeBuilder.reflectionHashCode(new Long[] {5L, 5L})); > System.out.println(HashCodeBuilder.reflectionHashCode(new Double[] {null, null})); > System.out.println(HashCodeBuilder.reflectionHashCode(new Object[] {Boolean.FALSE, 1L, null})); > > } > } > {code} > *Output:* > {code} > 17 > 17 > 17 > 17 > 17 > 17 > 17 > {code} > *Fix example 1* > First check if argument obj in HashCodeBuilder.reflectionHashCode(Object obj) is an array and than use java.util.Arrays.hashCode(Object[] array) -- This message was sent by Atlassian JIRA (v6.3.4#6332)