Author: wavey
Date: 2008-04-18 21:56:59 +0000 (Fri, 18 Apr 2008)
New Revision: 19401

Modified:
   trunk/freenet/src/freenet/support/Fields.java
   trunk/freenet/test/freenet/support/FieldsTest.java
Log:
corrected refactoring bug introduced in R19396 and added unit test for 
Fields.longToHashCode(byte[]) to demonstrate the fix :/

Modified: trunk/freenet/src/freenet/support/Fields.java
===================================================================
--- trunk/freenet/src/freenet/support/Fields.java       2008-04-18 21:00:43 UTC 
(rev 19400)
+++ trunk/freenet/src/freenet/support/Fields.java       2008-04-18 21:56:59 UTC 
(rev 19401)
@@ -431,7 +431,7 @@
         * Long version of above Not believed to be secure in any sense of the 
word :)
         */
        public static final long longHashCode(byte[] b) {
-               return longHashCode(b, 0, 0);
+               return longHashCode(b, 0, b.length);
        }       

        /**

Modified: trunk/freenet/test/freenet/support/FieldsTest.java
===================================================================
--- trunk/freenet/test/freenet/support/FieldsTest.java  2008-04-18 21:00:43 UTC 
(rev 19400)
+++ trunk/freenet/test/freenet/support/FieldsTest.java  2008-04-18 21:56:59 UTC 
(rev 19401)
@@ -4,6 +4,11 @@

 package freenet.support;

+import java.util.HashMap;
+import java.util.Map;
+
+import org.omg.CORBA.LongHolder;
+
 import junit.framework.TestCase;

 /**
@@ -220,4 +225,19 @@

                assertEquals(0, Fields.hashCode(input));
        }
+       
+       public void testLongHashcode() {
+               
+               byte[] b1 = new byte[] { 1, 1, 2, 2, 3, 3 };
+               byte[] b2 = new byte[] { 2, 2, 3, 3, 4, 4 };
+               byte[] b3 = new byte[] { 1, 1, 2, 2, 3, 3 };
+               
+               Long l1 = new Long(Fields.longHashCode(b1));
+               Long l2 = new Long(Fields.longHashCode(b2));
+               Long l3 = new Long(Fields.longHashCode(b3));
+
+               assertFalse(l1.equals(l2));
+               assertFalse(l2.equals(l3));
+               assertTrue(l3.equals(l1)); // should be same due to 
Fields.longHashcode
+       }       
 }


Reply via email to