-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
support-core:2.72
-
-
support-core-2.74
Cannot upgrade Mockito in support-core as build for jdk 11 fails with:
Error Mockito cannot mock this class: class com.cloudbees.jenkins.support.impl.GCLogs$VmArgumentFinder. Mockito can only mock non-private & non-final classes. If you're not sure why you're getting this error, please report to the mailing list. Java : 11 JVM vendor name : AdoptOpenJDK JVM vendor version : 11.0.6+10 JVM name : OpenJDK 64-Bit Server VM JVM version : 11.0.6+10 JVM info : mixed mode OS name : Linux OS version : 5.4.0-1029-aws Underlying exception : org.mockito.exceptions.base.MockitoException: Cannot create mock for class com.cloudbees.jenkins.support.impl.GCLogs$VmArgumentFinder The type is not public and its mock class is loaded by a different class loader. This can have multiple reasons: - You are mocking a class with additional interfaces of another class loader - Mockito is loaded by a different class loader than the mocked type (e.g. with OSGi) - The thread's context class loader is different than the mock's class loader Stacktrace org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: class com.cloudbees.jenkins.support.impl.GCLogs$VmArgumentFinder. Mockito can only mock non-private & non-final classes. If you're not sure why you're getting this error, please report to the mailing list. Java : 11 JVM vendor name : AdoptOpenJDK JVM vendor version : 11.0.6+10 JVM name : OpenJDK 64-Bit Server VM JVM version : 11.0.6+10 JVM info : mixed mode OS name : Linux OS version : 5.4.0-1029-aws Underlying exception : org.mockito.exceptions.base.MockitoException: Cannot create mock for class com.cloudbees.jenkins.support.impl.GCLogs$VmArgumentFinder The type is not public and its mock class is loaded by a different class loader. This can have multiple reasons: - You are mocking a class with additional interfaces of another class loader - Mockito is loaded by a different class loader than the mocked type (e.g. with OSGi) - The thread's context class loader is different than the mock's class loader at com.cloudbees.jenkins.support.impl.GCLogsTest.rotatedJava9Files(GCLogsTest.java:68) 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 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:377) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:138) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:465) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:451) Caused by: org.mockito.exceptions.base.MockitoException: Cannot create mock for class com.cloudbees.jenkins.support.impl.GCLogs$VmArgumentFinder The type is not public and its mock class is loaded by a different class loader. This can have multiple reasons: - You are mocking a class with additional interfaces of another class loader - Mockito is loaded by a different class loader than the mocked type (e.g. with OSGi) - The thread's context class loader is different than the mock's class loader at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:153) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:366) at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:175) at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:377) ... 29 more