United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7174736 JCK test api/java_util/HashMap/index_EntrySet failing
7174736 : JCK test api/java_util/HashMap/index_EntrySet failing

Details
Type:
Bug
Submit Date:
2012-06-06
Status:
Closed
Updated Date:
2012-08-20
Project Name:
JDK
Resolved Date:
2012-08-20
Component:
core-libs
OS:
os_x,generic
Sub-Component:
java.util
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
7,7u6,8
Fixed Versions:
8

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

Description
We've picked up at least 2 new JCK failures in the last few days. They need to examined quickly to determine if they are product or JCK test issues.

Here are the results file from both tests:


#Test Results (version 2)
#Tue Jun 05 19:14:21 PDT 2012
#-----testdescription-----
$file=/Users/aurora/JCK-runtime-8/tests/api/java_util/HashMap/index.html
$root=/Users/aurora/JCK-runtime-8/tests
executeArgs=-TestCaseID ALL
executeClass=javasoft.sqe.tests.api.java.util.HashMap.EntrySetTests
id=EntrySet
keywords=positive runtime
source=EntrySetTests.java
title=public Set entrySet() tests

#-----environment-----
command.testExecute.group=com.sun.jck.lib.multijvm.group.ExecCmd -MTASK_ -testTimeout $testTimeout -MENV_ LD_LIBRARY_PATH\=/Users/aurora/JCK-extra-8/binaries/solaris-sparc/lib/32bit DISPLAY\=jsn-sb2500-5.us.oracle.com\:0 HOME\=${user.home} DISPLAY\=jsn-sb2500-5.us.oracle.com\:0 -MCMD_ /Users/aurora/sandbox/jdk/bin/java -Xms32m -Xmx1024m -XX\:MaxPermSize\=256m -Djava.ext.dirs\=$testSuiteRootDir/lib/extensions\:"/Users/aurora/sandbox/jdk/bin/../jre/lib/ext" ${jvmtiAgentOptions} -Xfuture $jdwpAgentOptions -classpath $testSuiteRootDir/lib/javatest.jar\:$testSuiteRootDir/lib/jtjck.jar\:"/Users/aurora/sandbox/jdk/lib/tools.jar" $JPLISAgentOpts $JPLISAgent2Opts $jvmArgSplashOpt -Djava.security.policy\=$testSuiteRootDir/lib/jck.policy -Djava.rmi.activation.port\=40131 -MTEST_ com.sun.jck.lib.ExecJCKTestSameJVMCmd -loadDir $testSuiteRootDir/classes -loadImpl "/Users/aurora/sandbox/jdk/lib/tools.jar" $testExecuteClass $testExecuteArgs
testExecute.isGroupMode=true
user.home=/Users/aurora

#-----testresult-----
description=file\:/Users/aurora/JCK-runtime-8/tests/api/java_util/HashMap/index.html\#EntrySet
end=Tue Jun 05 19\:14\:21 PDT 2012
environment=jck_runtime_solaris
execStatus=Failed. test cases\: 12; passed\: 10; failed\: 2; first test case failure\: HashMap2006
javatestOS=SunOS 5.10 (sparc)
javatestVersion=4_5
script=com.sun.jck.lib.JCKScript 
sections=script_messages testExecute.group
start=Tue Jun 05 19\:14\:21 PDT 2012
test=api/java_util/HashMap/index.html\#EntrySet
timeoutSeconds=600
work=/Users/aurora/sandbox/results/workDir/api/java_util/HashMap

#section:script_messages
----------messages:(1/24)----------
Executing test class...

#section:testExecute.group
----------messages:(1/891)----------
command: com.sun.jck.lib.multijvm.group.ExecCmd -MTASK_ -testTimeout 600 -MENV_ LD_LIBRARY_PATH=/Users/aurora/JCK-extra-8/binaries/solaris-sparc/lib/32bit DISPLAY=jsn-sb2500-5.us.oracle.com:0 HOME=/Users/aurora DISPLAY=jsn-sb2500-5.us.oracle.com:0 -MCMD_ /Users/aurora/sandbox/jdk/bin/java -Xms32m -Xmx1024m -XX:MaxPermSize=256m -Djava.ext.dirs=/Users/aurora/JCK-runtime-8/lib/extensions:/Users/aurora/sandbox/jdk/bin/../jre/lib/ext -Xfuture -classpath /Users/aurora/JCK-runtime-8/lib/javatest.jar:/Users/aurora/JCK-runtime-8/lib/jtjck.jar:/Users/aurora/sandbox/jdk/lib/tools.jar -Djava.security.policy=/Users/aurora/JCK-runtime-8/lib/jck.policy -Djava.rmi.activation.port=40131 -MTEST_ com.sun.jck.lib.ExecJCKTestSameJVMCmd -loadDir /Users/aurora/JCK-runtime-8/classes -loadImpl /Users/aurora/sandbox/jdk/lib/tools.jar javasoft.sqe.tests.api.java.util.HashMap.EntrySetTests -TestCaseID ALL
----------out1:(12/421)----------
HashMap2004: Passed. OKAY
HashMap2005: Passed. OKAY
HashMap2006: Failed. Operation remove() did not remove necessary element
HashMap2007: Failed. Operation removeAll(Collection ) did not remove necessary elements
HashMap2008: Passed. OKAY
HashMap2009: Passed. OKAY
HashMap2010: Passed. OKAY
HashMap2011: Passed. OKAY
HashMap2012: Passed. OKAY
HashMap2013: Passed. OKAY
HashMap2014: Passed. OKAY
HashMap2015: Passed. OKAY
----------out2:(7/335)----------
MultiJVM group agent ID: 41
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-langtools-nightly-h247-20120605-b42-b00)
Java HotSpot(TM) Server VM (build 24.0-b11, mixed mode)

Operation remove() did not remove necessary element with i=4
Operation removeAll(Collection ) did not remove necessary elements with i=6
result: Failed. test cases: 12; passed: 10; failed: 2; first test case failure: HashMap2006


test result: Failed. test cases: 12; passed: 10; failed: 2; first test case failure: HashMap2006






#Test Results (version 2)
#Tue Jun 05 19:14:22 PDT 2012
#-----testdescription-----
$file=/Users/aurora/JCK-runtime-8/tests/api/java_util/Hashtable/index.html
$root=/Users/aurora/JCK-runtime-8/tests
executeArgs=-TestCaseID ALL
executeClass=javasoft.sqe.tests.api.java.util.Hashtable.miscTests
id=misc
keywords=positive runtime
source=miscTests.java
title=Hashtable misc tests

#-----environment-----
command.testExecute.group=com.sun.jck.lib.multijvm.group.ExecCmd -MTASK_ -testTimeout $testTimeout -MENV_ LD_LIBRARY_PATH\=/Users/aurora/JCK-extra-8/binaries/solaris-sparc/lib/32bit DISPLAY\=jsn-sb2500-5.us.oracle.com\:0 HOME\=${user.home} DISPLAY\=jsn-sb2500-5.us.oracle.com\:0 -MCMD_ /Users/aurora/sandbox/jdk/bin/java -Xms32m -Xmx1024m -XX\:MaxPermSize\=256m -Djava.ext.dirs\=$testSuiteRootDir/lib/extensions\:"/Users/aurora/sandbox/jdk/bin/../jre/lib/ext" ${jvmtiAgentOptions} -Xfuture $jdwpAgentOptions -classpath $testSuiteRootDir/lib/javatest.jar\:$testSuiteRootDir/lib/jtjck.jar\:"/Users/aurora/sandbox/jdk/lib/tools.jar" $JPLISAgentOpts $JPLISAgent2Opts $jvmArgSplashOpt -Djava.security.policy\=$testSuiteRootDir/lib/jck.policy -Djava.rmi.activation.port\=40131 -MTEST_ com.sun.jck.lib.ExecJCKTestSameJVMCmd -loadDir $testSuiteRootDir/classes -loadImpl "/Users/aurora/sandbox/jdk/lib/tools.jar" $testExecuteClass $testExecuteArgs
testExecute.isGroupMode=true
user.home=/Users/aurora

#-----testresult-----
description=file\:/Users/aurora/JCK-runtime-8/tests/api/java_util/Hashtable/index.html\#misc
end=Tue Jun 05 19\:14\:22 PDT 2012
environment=jck_runtime_solaris
execStatus=Failed. test cases\: 17; passed\: 16; failed\: 1; first test case failure\: Hashtable2027
javatestOS=SunOS 5.10 (sparc)
javatestVersion=4_5
script=com.sun.jck.lib.JCKScript 
sections=script_messages testExecute.group
start=Tue Jun 05 19\:14\:22 PDT 2012
test=api/java_util/Hashtable/index.html\#misc
timeoutSeconds=600
work=/Users/aurora/sandbox/results/workDir/api/java_util/Hashtable

#section:script_messages
----------messages:(1/24)----------
Executing test class...

#section:testExecute.group
----------messages:(1/889)----------
command: com.sun.jck.lib.multijvm.group.ExecCmd -MTASK_ -testTimeout 600 -MENV_ LD_LIBRARY_PATH=/Users/aurora/JCK-extra-8/binaries/solaris-sparc/lib/32bit DISPLAY=jsn-sb2500-5.us.oracle.com:0 HOME=/Users/aurora DISPLAY=jsn-sb2500-5.us.oracle.com:0 -MCMD_ /Users/aurora/sandbox/jdk/bin/java -Xms32m -Xmx1024m -XX:MaxPermSize=256m -Djava.ext.dirs=/Users/aurora/JCK-runtime-8/lib/extensions:/Users/aurora/sandbox/jdk/bin/../jre/lib/ext -Xfuture -classpath /Users/aurora/JCK-runtime-8/lib/javatest.jar:/Users/aurora/JCK-runtime-8/lib/jtjck.jar:/Users/aurora/sandbox/jdk/lib/tools.jar -Djava.security.policy=/Users/aurora/JCK-runtime-8/lib/jck.policy -Djava.rmi.activation.port=40131 -MTEST_ com.sun.jck.lib.ExecJCKTestSameJVMCmd -loadDir /Users/aurora/JCK-runtime-8/classes -loadImpl /Users/aurora/sandbox/jdk/lib/tools.jar javasoft.sqe.tests.api.java.util.Hashtable.miscTests -TestCaseID ALL
----------out1:(17/497)----------
Hashtable2011: Passed. OKAY
Hashtable2012: Passed. OKAY
Hashtable2013: Passed. OKAY
Hashtable2014: Passed. OKAY
Hashtable2015: Passed. OKAY
Hashtable2016: Passed. OKAY
Hashtable2017: Passed. OKAY
Hashtable2018: Passed. OKAY
Hashtable2019: Passed. OKAY
Hashtable2020: Passed. OKAY
Hashtable2021: Passed. OKAY
Hashtable2022: Passed. OKAY
Hashtable2023: Passed. OKAY
Hashtable2024: Passed. OKAY
Hashtable2025: Passed. OKAY
Hashtable2026: Passed. OKAY
Hashtable2027: Failed. The values() test failed.
----------out2:(5/198)----------
MultiJVM group agent ID: 39
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-langtools-nightly-h247-20120605-b42-b00)
Java HotSpot(TM) Server VM (build 24.0-b11, mixed mode)

result: Failed. test cases: 17; passed: 16; failed: 1; first test case failure: Hashtable2027


test result: Failed. test cases: 17; passed: 16; failed: 1; first test case failure: Hashtable2027

                                    

Comments
WORK AROUND

http://hg.openjdk.java.net/jdk8/tl/jdk/rev/fc0e508b713f
                                     
2012-06-07
SUGGESTED FIX

diff --git a/src/share/classes/java/util/HashMap.java b/src/share/classes/java/util/HashMap.java
--- a/src/share/classes/java/util/HashMap.java
+++ b/src/share/classes/java/util/HashMap.java
@@ -611,7 +611,7 @@ public class HashMap<K,V>
 
         Map.Entry<?,?> entry = (Map.Entry<?,?>) o;
         Object key = entry.getKey();
-        int hash = (key == null) ? 0 : hash(key.hashCode());
+        int hash = (key == null) ? 0 : hash(key);
         int i = indexFor(hash, table.length);
         @SuppressWarnings("unchecked")
             Entry<K,V> prev = (Entry<K,V>)table[i];
                                     
2012-06-06
EVALUATION

JCK test api/java_util/Hashtable/index_misc is failing due to a bug in the test. I've created 7174853 to track it.

The api/java_util/HashMap/index_EntrySet test is failing due to an oversight in the removeMapping method where the remove method on an EntrySet is not removing the entry.
                                     
2012-06-06



Hardware and Software, Engineered to Work Together