Kotlin / kotlinx-kover

Apache License 2.0
1.28k stars 48 forks source link

java.lang.NoClassDefFoundError #205

Closed AlexandruHulpe94 closed 1 year ago

AlexandruHulpe94 commented 1 year ago

We have some unit tests in our project which are passing without any issues when run locally but are failing with this: java.lang.IllegalStateException at PluginLoader.java:88 Caused by: java.lang.IllegalStateException at PluginInitializer.java:58 Caused by: java.lang.reflect.InvocationTargetException at NativeConstructorAccessorImpl.java:-2 Caused by: org.mockito.exceptions.base.MockitoInitializationException at InlineDelegateByteBuddyMockMaker.java:244 Caused by: java.lang.NoClassDefFoundError at InlineDelegateByteBuddyMockMaker.java:115 Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:641 kotlin.UninitializedPropertyAccessException at BaseTestCase.kt:22 when they are run with koverReport.

Kover version "0.6.0-Beta" compileSdkVersion = 33 minSdk = 21 targetSdk = 33 Kotlin version "1.6.1"

shanshin commented 1 year ago

Hi, may you clarify if this error is reproduced on version 0.5.1? Could you provide a reproducer of this issue?

AlexandruHulpe94 commented 1 year ago

If you see at the final I put all the used versions. Kover version "0.6.0-Beta"

shanshin commented 1 year ago

Thanks. If the previous version 0.5.1 is used instead of 0.6.0-Beta, then the error is also reproduced?

AlexandruHulpe94 commented 1 year ago

Yes. It's also reproduced with 0.5.1 as well.

shanshin commented 1 year ago

Is your project open-source? The reproducer would be very helpful

AlexandruHulpe94 commented 1 year ago

The project is not open source. Have a look at the unit test and stacktrace please. Screenshot 2022-08-17 at 18 24 06

Screenshot 2022-08-17 at 18 23 17

AlexandruHulpe94 commented 1 year ago

@shanshin Please see above.

shanshin commented 1 year ago

Could you provide a full error stack trace, or at least an error message for exceptions java.lang.NoClassDefFoundError and java.lang.ClassNotFoundException?

AlexandruHulpe94 commented 1 year ago

se.quartr.android.features.search.viewmodel.SearchAnalyticsTrackerTest > test search transcript click event FAILED java.lang.IllegalStateException at PluginLoader.java:88 Caused by: java.lang.IllegalStateException at PluginInitializer.java:58 Caused by: java.lang.reflect.InvocationTargetException at NativeConstructorAccessorImpl.java:-2 Caused by: org.mockito.exceptions.base.MockitoInitializationException at InlineDelegateByteBuddyMockMaker.java:244 Caused by: java.lang.NoClassDefFoundError at InlineDelegateByteBuddyMockMaker.java:115 Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:641 kotlin.UninitializedPropertyAccessException at BaseTestCase.kt:22 Could not stop org.gradle.internal.actor.internal.DefaultActorFactory$NonBlockingActor@77b7c5bf. org.gradle.internal.dispatch.DispatchException: Could not dispatch message [MethodInvocation method: processTestClass(DefaultTestClassRunInfo(se.quartr.android.viewmodel.search.SearchViewModelTest))]. at org.gradle.internal.dispatch.ExceptionTrackingFailureHandler.dispatchFailed(ExceptionTrackingFailureHandler.java:35) at org.gradle.internal.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:32) at org.gradle.internal.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:87) at org.gradle.internal.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:36) at org.gradle.internal.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:71) at org.gradle.internal.concurrent.InterruptibleRunnable.run(InterruptibleRunnable.java:42) at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 4' finished with non-zero exit value 134 at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:414) at org.gradle.process.internal.worker.DefaultWorkerProcess.onProcessStop(DefaultWorkerProcess.java:141) at org.gradle.process.internal.worker.DefaultWorkerProcess.access$000(DefaultWorkerProcess.java:42) at org.gradle.process.internal.worker.DefaultWorkerProcess$1.executionFinished(DefaultWorkerProcess.java:94) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy144.executionFinished(Unknown Source) at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:221) at org.gradle.process.internal.DefaultExecHandle.finished(DefaultExecHandle.java:354) at org.gradle.process.internal.ExecHandleRunner.completed(ExecHandleRunner.java:110) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:84) ... 7 more

shanshin commented 1 year ago

Unfortunately, it is not clear from this stacktrace which class was not found. Do you have the opportunity to find out for which class java.lang.NoClassDefFoundError is thrown?

AlexandruHulpe94 commented 1 year ago

Exception in thread "main" Exception in thread "main" java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_3570298.PreMain java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_3570298.PreMain at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) Exception in thread "main" at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_3570298.PreMain at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:435) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:435) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) java.lang.instrument ASSERTION FAILED : "result" with message agent load/premain call failed at open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422 java.lang.instrument ASSERTION FAILED : "result" with message agent load/premain call failed at open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:435) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) java.lang.instrument ASSERTION FAILED : "result" with message agent load/premain call failed at open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422

se.quartr.android.deeplink.DeepLinkRepositoryTest > initializationError FAILED java.lang.NoClassDefFoundError at ClassLoader.java:-2 Caused by: java.lang.ClassNotFoundException at BuiltinClassLoader.java:641 Could not stop org.gradle.internal.actor.internal.DefaultActorFactory$NonBlockingActor@31d2a3fe. org.gradle.internal.dispatch.DispatchException: Could not dispatch message [MethodInvocation method: processTestClass(DefaultTestClassRunInfo(se.quartr.android.features.document.viewmodel.TranscriptViewModelTest))]. at org.gradle.internal.dispatch.ExceptionTrackingFailureHandler.dispatchFailed(ExceptionTrackingFailureHandler.java:35) at org.gradle.internal.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:32) at org.gradle.internal.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:87) at org.gradle.internal.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:36) at org.gradle.internal.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:71) at org.gradle.internal.concurrent.InterruptibleRunnable.run(InterruptibleRunnable.java:42) at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 3' finished with non-zero exit value 134 at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:414) at org.gradle.process.internal.worker.DefaultWorkerProcess.onProcessStop(DefaultWorkerProcess.java:141) at org.gradle.process.internal.worker.DefaultWorkerProcess.access$000(DefaultWorkerProcess.java:42) at org.gradle.process.internal.worker.DefaultWorkerProcess$1.executionFinished(DefaultWorkerProcess.java:94) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy144.executionFinished(Unknown Source) at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:221) at org.gradle.process.internal.DefaultExecHandle.finished(DefaultExecHandle.java:354) at org.gradle.process.internal.ExecHandleRunner.completed(ExecHandleRunner.java:110) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:84) ... 7 more

shanshin commented 1 year ago

Are you using a Kover plugin with the JaCoCo engine?

If you use ProGuard/R8, are JaCoCo classes added to exceptions? Judging by the error, the JaCoCo org.jacoco.agent.rt.internal_3570298.PreMain class was shrinked.

shanshin commented 1 year ago

Feel free to open new bug issue if the problem reproduced again.