Hi, By doing
testLogging.events=["skipped", "failed"] inside of your testng task ( https://github.com/akarnokd/RxJavaFiberInterop/blob/e83b813321f15222334c53cfc2667d3335b075f4/build.gradle#L110 ) you're hiding standard error output. After change on testLogging.events=["skipped", "failed", "standard_error"] you'll see root cause, which for some reason gets lost and not preserved in exception that you currently see Gradle Test Executor 8 STANDARD_ERROR java.lang.instrument.IllegalClassFormatException: Error while instrumenting sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo. at org.jacoco.agent.rt.internal_035b120.CoverageTransformer.transform(CoverageTransformer.java:93) Caused by: java.io.IOException: Error while instrumenting sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo. at org.jacoco.agent.rt.internal_035b120.core.instr.Instrumenter.instrumentError(Instrumenter.java:158) at org.jacoco.agent.rt.internal_035b120.core.instr.Instrumenter.instrument(Instrumenter.java:108) at org.jacoco.agent.rt.internal_035b120.CoverageTransformer.transform(CoverageTransformer.java:91) ... 64 more Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58 Page http://jdk.java.net/loom/ states Warning: This build is based on an incomplete version of JDK 14. JDK 14 contains class files with major version 58 (Java 14 bytecode) and sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo is one of them, whereas JaCoCo 0.8.4 does not support instrumentation of Java 14 bytecode - see https://www.jacoco.org/jacoco/trunk/doc/changes.html : official support for instrumentation of Java 12 bytecode since version 0.8.4, and experimental support for instrumentation of Java 13 bytecode since version 0.8.3. Your class files compiled into Java 11 bytecode, and you probably not interested in coverage of any other class files, so you can include only them into instrumentation by addition to testng task jacoco.includes = ["hu/akarnokd/**"] Or you can try unreleased JaCoCo version 0.8.5-SNAPSHOT ( https://www.jacoco.org/jacoco/trunk/doc/repo.html ) that contains experimental support for instrumentation of Java 14 bytecode ( https://github.com/jacoco/jacoco/pull/897 ). Regards, Evgeny On Wednesday, July 31, 2019 at 7:21:21 PM UTC+2, Dávid Karnok wrote: > > Hi! > > I'm experimenting with the Project Loom build (http://jdk.java.net/loom/) > using a small gradle project that uses TestNG: > > > https://github.com/akarnokd/RxJavaFiberInterop/blob/e83b813321f15222334c53cfc2667d3335b075f4/build.gradle#L19 > > If I enable Jacoco and run "check", I get a hefty exception (on Windows): > > java.lang.LinkageError: loader 'platform' attempted duplicate class > definition for sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo. > (sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo is in module > jdk.localedata of loader 'platform') > > > Caused by: java.util.ServiceConfigurationError: > sun.util.locale.provider.LocaleDataMetaInfo: Unable to load > sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo > at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:583) > at > java.base/java.util.ServiceLoader.loadProvider(ServiceLoader.java:855) > at > java.base/java.util.ServiceLoader$ModuleServicesLookupIterator.hasNext(ServiceLoader.java:1077) > at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300) > at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385) > at > java.base/sun.util.cldr.CLDRLocaleProviderAdapter$1.run(CLDRLocaleProviderAdapter.java:89) > at > java.base/sun.util.cldr.CLDRLocaleProviderAdapter$1.run(CLDRLocaleProviderAdapter.java:86) > at > java.base/java.security.AccessController.doPrivileged(AccessController.java:553) > at > java.base/sun.util.cldr.CLDRLocaleProviderAdapter.<init>(CLDRLocaleProviderAdapter.java:86) > 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.newInstanceWithCaller(Constructor.java:500) > at > java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:166) > at > java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:404) > at java.base/java.lang.Class.newInstance(Class.java:591) > at > java.base/sun.util.locale.provider.LocaleProviderAdapter.forType(LocaleProviderAdapter.java:176) > at > java.base/sun.util.locale.provider.LocaleProviderAdapter.findAdapter(LocaleProviderAdapter.java:279) > at > java.base/sun.util.locale.provider.LocaleProviderAdapter.getAdapter(LocaleProviderAdapter.java:250) > at > java.base/java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180) > at java.base/java.util.Formatter.getZero(Formatter.java:2437) > at java.base/java.util.Formatter.<init>(Formatter.java:1956) > at java.base/java.util.Formatter.<init>(Formatter.java:1978) > at java.base/java.lang.String.format(String.java:3274) > at org.testng.internal.Utils.<clinit>(Utils.java:32) > at org.testng.TestNG.setOutputDirectory(TestNG.java:217) > at > org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcessor.java:102) > at > org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcessor.java:89) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) > ... 25 more > Caused by: java.lang.LinkageError: loader 'platform' attempted duplicate > class definition for sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo. > (sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo is in module > jdk.localedata of loader 'platform') > at java.base/java.lang.ClassLoader.defineClass2(Native Method) > at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108) > at > java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:183) > at > java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:782) > at > java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:703) > at > java.base/jdk.internal.loader.BuiltinClassLoader.findClass(BuiltinClassLoader.java:584) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:633) > at java.base/java.lang.Class.forName(Class.java:492) > at > java.base/java.util.ServiceLoader.loadProvider(ServiceLoader.java:853) > ... 52 more > > > > Is there a setting I'm missing that could cause this problem? > > Thank you for your time. > -- You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/ae033714-ba6c-4480-835a-386ede4968dc%40googlegroups.com.
