JENA-1784 CacheSimple doesn't check keys for equality
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
index 0ab01a7..2586bd9 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java
@@ -76,7 +76,7 @@
     private final int index(K key)
     { 
         int x = (key.hashCode()&0x7fffffff) % size ;
-        if ( keys[x] != null )
+        if (key.equals(keys[x]))
             return x ; 
         return -x-1 ;
     }
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/lib/cache/CacheSimpleTest.java b/jena-base/src/test/java/org/apache/jena/atlas/lib/cache/CacheSimpleTest.java
index 41f8dd5..c603cd6 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/cache/CacheSimpleTest.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/lib/cache/CacheSimpleTest.java
@@ -21,6 +21,7 @@
 import static java.util.stream.Collectors.toMap;
 import static java.util.stream.IntStream.rangeClosed;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 
 import org.apache.jena.atlas.lib.Cache;
 import org.junit.Test;
@@ -40,4 +41,12 @@
 				.forEach(testCache::put);
 		assertEquals("Test cache failed to maintain fixed size!", maxSize, testCache.size());
 	}
+
+	@Test
+	public void testSameHash() {
+		Cache<String, Integer> cache = new CacheSimple<>(10);
+		assertEquals("Aa".hashCode(), "BB".hashCode());
+		cache.put("Aa", 1);
+		assertFalse("Keys with same hash code should not be considered equal", cache.containsKey("BB"));
+	}
 }