You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2014/08/18 16:47:37 UTC

svn commit: r1618621 - in /lucene/dev/trunk/lucene/core/src: java/org/apache/lucene/util/Version.java test/org/apache/lucene/util/TestVersion.java

Author: simonw
Date: Mon Aug 18 14:47:36 2014
New Revision: 1618621

URL: http://svn.apache.org/r1618621
Log:
LUCENE-5850: Add missing hashCode implementation to Version.java

Modified:
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java?rev=1618621&r1=1618620&r2=1618621&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java Mon Aug 18 14:47:36 2014
@@ -349,4 +349,9 @@ public final class Version {
   public boolean equals(Object o) {
     return o != null && o instanceof Version && ((Version)o).encodedValue == encodedValue;
   }
+
+  @Override
+  public int hashCode() {
+    return encodedValue;
+  }
 }

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java?rev=1618621&r1=1618620&r2=1618621&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java Mon Aug 18 14:47:36 2014
@@ -19,6 +19,7 @@ package org.apache.lucene.util;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.util.Random;
 
 public class TestVersion extends LuceneTestCase {
 
@@ -186,4 +187,23 @@ public class TestVersion extends LuceneT
     assertEquals("Version.LATEST does not match the one given in common-build.xml",
         Version.LATEST.toString(), commonBuildVersion);
   }
+
+  public void testEqualsHashCode() {
+    Random random = random();
+    String version = "" + (4 + random.nextInt(1)) + "."  + random.nextInt(10) + "." + random.nextInt(10);
+    Version v1 = Version.parseLeniently(version);
+    Version v2 = Version.parseLeniently(version);
+    assertEquals(v1.hashCode(), v2.hashCode());
+    assertEquals(v1, v2);
+    final int iters = 10 + random.nextInt(20);
+    for (int i = 0; i < iters; i++) {
+      String v = "" + (4 + random.nextInt(1)) + "."  + random.nextInt(10) + "." + random.nextInt(10);
+      if (v.equals(version)) {
+        assertEquals(Version.parseLeniently(v).hashCode(), v1.hashCode());
+        assertEquals(Version.parseLeniently(v), v1);
+      } else {
+        assertFalse(Version.parseLeniently(v).equals(v1));
+      }
+    }
+  }
 }