adoptium / adoptium/bumblebench
NullPointerException while Running DispatchBench.InnerClasses with JDK 11 Hotspot
- Dominant language
- Java
- Stars
- 27
- Forks
- 32
- PR merge metrics
- No merged PRs in 30d
Description
### Problem Description
Running bumbleBench-DispatchBench-InnerClasses with JDK 11 Hotspot gives NullPointerException as shown below. This benchmark works with JDK 8 Hotpot and JDK 11 and 8 OpenJ9.
I'm trying to add BumbleBench targets for testing at Adopt as part of AdoptOpenJDK/openjdk-tests#1379.
### Error
```
18:12:19 ===============================================
18:12:19 Running test bumbleBench-DispatchBench-InnerClasses_0 ...
18:12:19 ===============================================
18:12:19 bumbleBench-DispatchBench-InnerClasses_0 Start Time: Fri Oct 11 22:12:19 2019 Epoch Time (ms): 1570831939782
18:12:19 Nothing to be done for setup.
18:12:19 variation: NoOptions
18:12:19 JVM_OPTIONS:
18:12:19 { itercnt=1; \
18:12:19 mkdir -p "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/bumbleBench-DispatchBench-InnerClasses_0"; \
18:12:19 cd "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/bumbleBench-DispatchBench-InnerClasses_0"; \
18:12:19 "/home/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/bin/java" -jar /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/perf/bumbleBench/bumblebench/BumbleBench.jar DispatchBench.InnerClasses; \
18:12:19 if [ $? -eq 0 ] ; then echo ""; echo "bumbleBench-DispatchBench-InnerClasses_0""_PASSED"; echo ""; cd /home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../..; else echo ""; echo "bumbleBench-DispatchBench-InnerClasses_0""_FAILED"; echo ""; fi; } 2>&1 | tee -a "/home/jenkins/workspace/Grinder/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_157083193966/TestTargetResult";
18:12:20 Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass(Util.java:187)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.newInstanceOfPossiblyFreshlyLoadedClass(Util.java:223)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench$InnerClasses.getCallee(DispatchBench.java:126)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench.computeCallees(DispatchBench.java:39)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench.(DispatchBench.java:34)
18:12:20 at net.adoptopenjdk.bumblebench.lambda.DispatchBench$InnerClasses.(DispatchBench.java:124)
18:12:20 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
18:12:20 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
18:12:20 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
18:12:20 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
18:12:20 at java.base/java.lang.Class.newInstance(Class.java:584)
18:12:20 at net.adoptopenjdk.bumblebench.core.Launcher.main(Launcher.java:55)
18:12:20 Caused by: java.lang.NullPointerException
18:12:20 at java.base/java.lang.reflect.Method.invoke(Method.java:559)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.readFully(Util.java:196)
18:12:20 at net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass(Util.java:184)
18:12:20 ... 11 more
18:12:20
18:12:20 bumbleBench-DispatchBench-InnerClasses_0_FAILED
18:12:20
18:12:20 Nothing to be done for teardown.
18:12:20 bumbleBench-DispatchBench-InnerClasses_0 Finish Time: Fri Oct 11 22:12:20 2019 Epoch Time (ms): 1570831940345
18:12:20
18:12:20 ===============================================
```
### To Reproduce
1) Remove the implementation constraint for this test: bumbleBench-DispatchBench-InnerClasses (https://github.com/AdoptOpenJDK/openjdk-tests/blob/master/perf/bumbleBench/playlist.xml)
2) Use the bumbleBench-DispatchBench-InnerClasses target on TestKitGen with the relevant SDK
Contributor guide
Research direction
Start with the JDK 11 HotSpot reproduction described in the issue, using the bumbleBench-DispatchBench-InnerClasses target and the implementation constraint in perf/bumbleBench/playlist.xml. Trace the stack from net.adoptopenjdk.bumblebench.core.Util.freshlyLoadedClass/readFully (Util.java:184-196) through DispatchBench.java:126. Done means the target runs without the reported NullPointerException on JDK 11 HotSpot.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- performance, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100