opentest4j-reporting component - set source/targetCompatibility 8
This MR resolves https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1071976.
A number of jdk tests fail with the following exception (e.g. test/jdk/java/lang/invoke/BigArityTest.java):
java.util.ServiceConfigurationError: org.junit.platform.launcher.TestExecutionListener: Provider org.junit.platform.reporting.open.xml.OpenTestReportGeneratingListener could not be instantiated
at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:582)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:804)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:722)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1395)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at org.junit.platform.launcher.core.LauncherFactory.registerTestExecutionListeners(LauncherFactory.java:179)
at org.junit.platform.launcher.core.LauncherFactory.createDefaultLauncher(LauncherFactory.java:137)
at org.junit.platform.launcher.core.LauncherFactory.openSession(LauncherFactory.java:98)
at com.sun.javatest.regtest.agent.JUnitRunner.runWithJUnitPlatform(JUnitRunner.java:141)
at com.sun.javatest.regtest.agent.JUnitRunner.main(JUnitRunner.java:95)
at com.sun.javatest.regtest.agent.JUnitRunner.main(JUnitRunner.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.UnsupportedClassVersionError: org/junit/platform/reporting/shadow/org/opentest4j/reporting/events/api/DocumentWriter has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
at org.junit.platform.reporting.open.xml.OpenTestReportGeneratingListener.<init>(OpenTestReportGeneratingListener.java:95)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:780)
... 22 more
Changes:
- d/p/opentest4j-reporting-01-gradle-compatibility.patch: set source/targetCompatibility 8 to support openjdk 11 jtreg tests (Closes: #1071976).
Testing:
- run openjdk-11 jtreg tests
hotspot:
FAILED: gc/shenandoah/mxbeans/TestChurnNotifications.java#id1
FAILED: gc/shenandoah/mxbeans/TestChurnNotifications.java#id5
Failed before due to mismatched number of notifications.
jdk:
FAILED: sun/security/ec/TestEC.java
fails due to SecurityManager exception. Test passes when ran using jtreg7 in isolation, could be an issue when running it in agentvm.
- validate major class version in the jtreg package:
$ find /usr/share/jtreg7/lib -name "*.jar" -exec jar xvf {} \;
..
$ find . -name "*.class" -exec javap -v {} \; | grep --color=auto "major version" > javap.txt
...
$ cat javap.txt | unique out.txt
...
$ cat out.txt
major version: 52
major version: 51
#176 = String #177 // b; // major version
#177 = Utf8 b; // major version
178: ldc #176 // String b; // major version
705: ldc #176 // String b; // major version
141: ldc #176 // String b; // major version
231: ldc #176 // String b; // major version
114: ldc #176 // String b; // major version
Class versions 51 and 52 are present that correspond to Java 8 and 11.
Edited by Vladimir Petko