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

Merge request reports

Loading