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));
+ }
+ }
+ }
}