Author: bayard Date: Sat Oct 24 00:04:07 2009 New Revision: 829285 URL: http://svn.apache.org/viewvc?rev=829285&view=rev Log: Changing the hashCode() method to return toHashCode() per the request in LANG-520
Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java commons/proper/lang/trunk/src/test/org/apache/commons/lang/builder/HashCodeBuilderTest.java Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java?rev=829285&r1=829284&r2=829285&view=diff ============================================================================== --- commons/proper/lang/trunk/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java (original) +++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java Sat Oct 24 00:04:07 2009 @@ -969,4 +969,16 @@ return iTotal; } + /** + * <p> + * The computed <code>hashCode</code> from toHashCode() is returned due to the likelyhood + * of bugs in mis-calling toHashCode() and the unlikelyness of it mattering what the hashCode for + * HashCodeBuilder itself is. + * + * @return <code>hashCode</code> based on the fields appended + */ + public int hashCode() { + return toHashCode(); + } + } Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/builder/HashCodeBuilderTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/builder/HashCodeBuilderTest.java?rev=829285&r1=829284&r2=829285&view=diff ============================================================================== --- commons/proper/lang/trunk/src/test/org/apache/commons/lang/builder/HashCodeBuilderTest.java (original) +++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/builder/HashCodeBuilderTest.java Sat Oct 24 00:04:07 2009 @@ -547,4 +547,13 @@ b.hashCode(); } + /** + * Ensures LANG-520 remains true + */ + public void testToHashCodeEqualsHashCode() { + HashCodeBuilder hcb = new HashCodeBuilder(17, 37).append(new Object()).append('a'); + assertEquals("hashCode() is no longer returning the same value as toHashCode() - see LANG-520", + hcb.toHashCode(), hcb.hashCode()); + } + }