Not sure what role Eclipse IDE plays here. Please compare the classpath used when run on command vs when launched from Eclipse (select properties on the process object in the Debug view and you will see the full command line created by Eclipse). I assume some subtil differences like different JAR versions or ordering.
Thanks for the feedback ;) Regards, -marc > On 21. Jun 2019, at 17:48, JD Smith <[email protected]> wrote: > > Marc, > > Thanks for the response. > You are right – it occurs with the normal Run mode… > So this would be an Eclipse problem with the Junit runner, probably. > > I love the EclEmma/JaCoCo code coverage tools. I use them all the time, and > have for many years. > > I’ll contact Eclipse now. > > Thanks again, > JD > > From: [email protected] <[email protected]> On Behalf Of Marc > Hoffmann > Sent: Friday, June 21, 2019 9:21 AM > To: [email protected] > Subject: Re: [java code coverage] Eclipse 2019-03 EclEmma plugin is causing > UnsupportedOperationException > > Does this error also occur when you run your tests in Eclipse in normal “run” > mode (no coverage)? > > In this case JaCoCo or EclEmma is not involved in your runtime classpath at > all. And even when you run your application with with JaCoCo the JaCoCo agent > includes its own repackaged version of ASM which will not interfere with > other ASM versions on the class path. > > Regards, > -marc > > >> On 21. Jun 2019, at 17:12, jahunsmythe <[email protected] >> <mailto:[email protected]>> wrote: >> >> This error does not occur with command line builds of my project. >> >> But in Eclipse, when running the JUnit tests, this error occurs. >> I am assuming that this is occurring is the version of JaCoCo that EclEmma >> is using has a dependency on an older version of ASM that has not fixed the >> problem with NestHost and NestMembers. >> Just an FYI: I am using EclEmma/JaCoCo combined with JMockit. This >> shouldn't be the cause, as this is a known problem with ASM. >> See the JMockit issue for more information about this: >> >> https://github.com/jmockit/jmockit1/pull/555 >> <https://github.com/jmockit/jmockit1/pull/555> >> >> My environment: >> >> Windows 10 >> Eclipse 2019-03 >> Java 11.0.1 >> JUnit 5 >> JMockit 1.46 >> ASM 7.1 >> >> The Exception from a JUnit test in Eclipse that is failing: >> >> java.lang.UnsupportedOperationException: class redefinition failed: >> attempted to change the class NestHost or NestMembers attribute >> at >> java.instrument/sun.instrument.InstrumentationImpl.redefineClasses0(Native >> Method) >> at >> java.instrument/sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:193) >> at >> mockit.internal.startup.Startup.redefineMethods(Startup.java:159) >> at >> mockit.internal.state.MockFixture.redefineClasses(MockFixture.java:159) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.applyClassRedefinition(BaseTypeRedefinition.java:221) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineClass(BaseTypeRedefinition.java:215) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineClassAndItsSuperClasses(BaseTypeRedefinition.java:188) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineClassAndItsSuperClasses(BaseTypeRedefinition.java:204) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineMethodsAndConstructorsInTargetType(BaseTypeRedefinition.java:175) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineTargetClassAndCreateInstanceFactory(BaseTypeRedefinition.java:251) >> at >> mockit.internal.expectations.mocking.BaseTypeRedefinition.redefineType(BaseTypeRedefinition.java:67) >> at >> mockit.internal.expectations.mocking.TypeRedefinition.redefineType(TypeRedefinition.java:28) >> at >> mockit.internal.expectations.mocking.FieldTypeRedefinitions.redefineFieldType(FieldTypeRedefinitions.java:78) >> at >> mockit.internal.expectations.mocking.FieldTypeRedefinitions.redefineFieldType(FieldTypeRedefinitions.java:65) >> at >> mockit.internal.expectations.mocking.FieldTypeRedefinitions.redefineFieldTypes(FieldTypeRedefinitions.java:53) >> at >> mockit.internal.expectations.mocking.FieldTypeRedefinitions.<init>(FieldTypeRedefinitions.java:33) >> at >> mockit.integration.internal.TestRunnerDecorator.handleMockFieldsForWholeTestClass(TestRunnerDecorator.java:141) >> at >> mockit.integration.junit5.JMockitExtension.postProcessTestInstance(JMockitExtension.java:52) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$invokeTestInstancePostProcessors$3(ClassTestDescriptor.java:215) >> at >> org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable(JupiterTestDescriptor.java:141) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$invokeTestInstancePostProcessors$4(ClassTestDescriptor.java:215) >> at >> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) >> at >> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) >> at >> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) >> 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.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) >> at >> java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) >> at >> java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) >> at >> java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.invokeTestInstancePostProcessors(ClassTestDescriptor.java:214) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateAndPostProcessTestInstance(ClassTestDescriptor.java:196) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$testInstanceProvider$0(ClassTestDescriptor.java:185) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$testInstanceProvider$1(ClassTestDescriptor.java:189) >> at java.base/java.util.Optional.orElseGet(Optional.java:369) >> at >> org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$testInstanceProvider$2(ClassTestDescriptor.java:188) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:81) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:58) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.prepare(HierarchicalTestExecutor.java:89) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:74) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121) >> at >> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) >> at >> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) >> 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.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121) >> at >> org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121) >> at >> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) >> at >> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) >> 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.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121) >> at >> org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:55) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229) >> at >> org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197) >> at >> org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137) >> at >> org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:89) >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209) >> >> >> -- >> 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] >> <mailto:[email protected]>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jacoco/24302a95-cbc1-4b6e-bbac-884b2d9ba510%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jacoco/24302a95-cbc1-4b6e-bbac-884b2d9ba510%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > -- > 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] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jacoco/2DCA27FD-EB3C-44F3-889C-389E9EDBA8B3%40mountainminds.com > > <https://groups.google.com/d/msgid/jacoco/2DCA27FD-EB3C-44F3-889C-389E9EDBA8B3%40mountainminds.com?utm_medium=email&utm_source=footer>. > > -- > 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] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jacoco/000401d52848%24cddf56a0%24699e03e0%24%40smithoptimalsolutions.com > > <https://groups.google.com/d/msgid/jacoco/000401d52848%24cddf56a0%24699e03e0%24%40smithoptimalsolutions.com?utm_medium=email&utm_source=footer>. -- 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/84218571-0D2A-4BDE-8EE9-29996AB3EDDD%40mountainminds.com.
