adoptium / bumblebench

A microbenchmarking test framework for Eclipse Adoptium
Apache License 2.0
22 stars 31 forks source link

NullPointerException while Running DispatchBench.InnerClasses with JDK 11 Hotspot #14

Open piyush286 opened 4 years ago

piyush286 commented 4 years ago

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.<init>(DispatchBench.java:34)
18:12:20    at net.adoptopenjdk.bumblebench.lambda.DispatchBench$InnerClasses.<init>(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