Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8336672

[lworld] Tests of spliterators and streams fail when value objects are used with WeakHashmap

XMLWordPrintable

      Test java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java fails when run with Valhalla migrated classes because it tries to put instances of those classes into WeakHashMaps.

      Additional tests with similar failures:
      test/jdk/java/util/Spliterator/SpliteratorCharacteristics.java
      test/jdk/java/util/Spliterator/SpliteratorFailFastTest.java
      test/jdk/java/util/Spliterator/SpliteratorLateBindingFailFastHelper.java
      test/jdk/java/util/Spliterator/SpliteratorLateBindingTest.java
      test/jdk/java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java

      Typical stack trace:

      java.lang.IdentityException: java.lang.Integer is not an identity class
      at java.base/java.util.WeakHashMap.newValueEntry(WeakHashMap.java:584)
      at java.base/java.util.WeakHashMap.put(WeakHashMap.java:553)
      at java.base/java.util.WeakHashMap.putAll(WeakHashMap.java:688)
      at java.base/java.util.WeakHashMap.<init>(WeakHashMap.java:326)
      at org.openjdk.tests.java.util.stream.CollectionAndMapModifyStreamTest.lambda$createMaps$3(CollectionAndMapModifyStreamTest.java:118)
      at org.openjdk.tests.java.util.stream.CollectionAndMapModifyStreamTest.testMapValuesSizeRemove(CollectionAndMapModifyStreamTest.java:150)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
      at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599)
      at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)
      at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
      at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822)
      at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147)
      at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
      at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
      at org.testng.TestRunner.privateRun(TestRunner.java:764)
      at org.testng.TestRunner.run(TestRunner.java:585)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
      at org.testng.SuiteRunner.run(SuiteRunner.java:286)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
      at org.testng.TestNG.runSuites(TestNG.java:1069)
      at org.testng.TestNG.run(TestNG.java:1037)
      at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:102)
      at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:58)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
      at java.base/java.lang.Thread.run(Thread.java:1575)

            rriggs Roger Riggs
            fparain Frederic Parain
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: