[jboss-cvs] JBossAS SVN: r100915 - in projects/jboss-mdr/trunk/src: test/java/org/jboss/test/metadata/scope/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 12 10:06:39 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-02-12 10:06:38 -0500 (Fri, 12 Feb 2010)
New Revision: 100915
Modified:
projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/Scope.java
projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/ScopeKey.java
projects/jboss-mdr/trunk/src/test/java/org/jboss/test/metadata/scope/test/ScopeKeyUnitTestCase.java
Log:
[JBMDR-65] Proper hashing for ScopeKey
Modified: projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/Scope.java
===================================================================
--- projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/Scope.java 2010-02-12 14:57:11 UTC (rev 100914)
+++ projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/Scope.java 2010-02-12 15:06:38 UTC (rev 100915)
@@ -51,7 +51,11 @@
this.level = level;
this.qualifier = qualifier;
- this.hashcode = level.hashCode();
+
+ int hash = 17;
+ hash = 31 * hash + level.hashCode();
+ hash = 31 * hash + qualifier.hashCode();
+ hashcode = hash;
}
public ScopeLevel getScopeLevel()
Modified: projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/ScopeKey.java
===================================================================
--- projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/ScopeKey.java 2010-02-12 14:57:11 UTC (rev 100914)
+++ projects/jboss-mdr/trunk/src/main/java/org/jboss/metadata/spi/scope/ScopeKey.java 2010-02-12 15:06:38 UTC (rev 100915)
@@ -407,7 +407,8 @@
{
int hashCode = 0;
for (Scope scope : scopeCollection)
- hashCode += scope.getScopeLevel().hashCode();
+ //hashCode += scope.getScopeLevel().hashCode();
+ hashCode += scope.hashCode();
return hashCode;
}
}
Modified: projects/jboss-mdr/trunk/src/test/java/org/jboss/test/metadata/scope/test/ScopeKeyUnitTestCase.java
===================================================================
--- projects/jboss-mdr/trunk/src/test/java/org/jboss/test/metadata/scope/test/ScopeKeyUnitTestCase.java 2010-02-12 14:57:11 UTC (rev 100914)
+++ projects/jboss-mdr/trunk/src/test/java/org/jboss/test/metadata/scope/test/ScopeKeyUnitTestCase.java 2010-02-12 15:06:38 UTC (rev 100915)
@@ -646,6 +646,34 @@
assertFalse(key1.equals(key2));
}
+ public void testHashCodes() throws Exception
+ {
+ ScopeKey key1a = new ScopeKey();
+ assertAddScope(key1a, testScope1, null);
+
+ ScopeKey key1b = new ScopeKey();
+ assertAddScope(key1b, testScope1, null);
+ assertEquals(key1a.hashCode(), key1b.hashCode());
+ assertEquals(key1a.hashCode(), key1a.getOptimizedKey().hashCode());
+ assertEquals(key1b.hashCode(), key1b.getOptimizedKey().hashCode());
+
+ ScopeKey key2 = new ScopeKey();
+ assertAddScope(key2, testScope1Different, null);
+ assertTrue(key2.hashCode() != key1a.hashCode());
+
+ assertAddScope(key1a, testScope2, null);
+ assertAddScope(key1b, testScope2, null);
+ assertEquals(key1a.hashCode(), key1b.hashCode());
+ assertEquals(key1a.hashCode(), key1a.getOptimizedKey().hashCode());
+ assertEquals(key1b.hashCode(), key1b.getOptimizedKey().hashCode());
+
+ assertAddScope(key1a, testScope3, null);
+ assertAddScope(key1b, testScope3Different, null);
+ assertTrue(key1a.hashCode() != key1b.hashCode());
+ assertEquals(key1a.hashCode(), key1a.getOptimizedKey().hashCode());
+ assertEquals(key1b.hashCode(), key1b.getOptimizedKey().hashCode());
+ }
+
protected void assertScopeKey(Scope[] scopes, ScopeKey key) throws Exception
{
assertNotNull(scopes);
More information about the jboss-cvs-commits
mailing list