[ 
https://issues.apache.org/jira/browse/SOLR-17718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938066#comment-17938066
 ] 

Chris M. Hostetter commented on SOLR-17718:
-------------------------------------------

Full example of a failure...

 
{noformat}
KafkaCrossDcConsumerTest > testHandleFailedResubmit FAILED
    org.mockito.exceptions.base.MockitoException: 
    Mockito cannot mock this class: class 
org.apache.kafka.clients.consumer.KafkaConsumer.

    If you're not sure why you're getting this error, please open an issue on 
GitHub.


    Java               : 25
    JVM vendor name    : Oracle Corporation
    JVM vendor version : 25-ea+15-1670
    JVM name           : OpenJDK 64-Bit Server VM
    JVM version        : 25-ea+15-1670
    JVM info           : mixed mode, sharing
    OS name            : Linux
    OS version         : 6.11.0-19-generic


    You are seeing this disclaimer because Mockito is configured to create 
inlined mocks.
    You can learn about inline mocks and their limitations under item #39 of 
the Mockito class javadoc.

    Underlying exception : org.mockito.exceptions.base.MockitoException: Could 
not modify all classes [interface java.io.Closeable, class 
org.apache.kafka.clients.consumer.KafkaConsumer, interface 
org.apache.kafka.clients.consumer.Consumer, class java.lang.Object, interface 
java.lang.AutoCloseable]
        at 
app//org.apache.solr.crossdc.manager.consumer.KafkaCrossDcConsumerTest.setUp(KafkaCrossDcConsumerTest.java:88)
        at 
java.base@25-ea/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base@25-ea/java.lang.reflect.Method.invoke(Method.java:565)
        at 
app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at 
app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at 
app//org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33)
        at 
app//org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at 
app//org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at 
app//org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at app//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at 
app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at 
app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at 
app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at 
app//org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)
        at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
        at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)
        at 
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:54)
        at 
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)
        at 
java.base@25-ea/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base@25-ea/java.lang.reflect.Method.invoke(Method.java:565)
        at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
        at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at 
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
        at 
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
        at jdk.proxy1/jdk.proxy1.$Proxy4.processTestClass(Unknown Source)
        at 
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:183)
        at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)
        at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
        at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
        at 
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
        at 
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
        at 
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
        at 
app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
        at 
app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)

        Caused by:
        org.mockito.exceptions.base.MockitoException: Could not modify all 
classes [interface java.io.Closeable, class 
org.apache.kafka.clients.consumer.KafkaConsumer, interface 
org.apache.kafka.clients.consumer.Consumer, class java.lang.Object, interface 
java.lang.AutoCloseable]
            at app//net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
            at 
app//net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
            at app//net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
            at 
app//net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
            ... 43 more

            Caused by:
            java.lang.IllegalStateException: 
            Byte Buddy could not instrument all classes within the mock's type 
hierarchy

            This problem should never occur for javac-compiled classes. This 
problem has been observed for classes that are:
             - Compiled by older versions of scalac
             - Classes that are part of the Android distribution
                at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.triggerRetransformation(InlineBytecodeGenerator.java:291)
                at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:220)
                at 
org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.lambda$mockClass$0(TypeCachingBytecodeGenerator.java:78)
                at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
                at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
                at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
                at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
                at 
org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.mockClass(TypeCachingBytecodeGenerator.java:75)
                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMockType(InlineDelegateByteBuddyMockMaker.java:429)
                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:388)
                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:367)
                at 
org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.createMock(InlineByteBuddyMockMaker.java:56)
                at 
org.mockito.internal.util.MockUtil.createMock(MockUtil.java:99)
                at org.mockito.internal.MockitoCore.mock(MockitoCore.java:84)
                at org.mockito.Mockito.mock(Mockito.java:2198)
                at org.mockito.Mockito.mock(Mockito.java:2113)
                ... 43 more

                Caused by:
                java.lang.IllegalArgumentException: Java 25 (69) is not 
supported by the current version of Byte Buddy which officially supports Java 
24 (68) - update Byte Buddy or set net.bytebuddy.experimental as a VM property
                    at 
net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:120)
                    at 
net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:95)
                    at 
net.bytebuddy.utility.AsmClassReader$Factory$Default.make(AsmClassReader.java:82)
                    at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:4031)
                    at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2246)
                    at 
net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4085)
                    at 
net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3769)
                    at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.transform(InlineBytecodeGenerator.java:408)
                    at 
java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:257)
                    at 
java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
                    at 
java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:594)
                    at 
java.instrument/sun.instrument.InstrumentationImpl.retransformClasses0(Native 
Method)
                    at 
java.instrument/sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:221)
                    at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.triggerRetransformation(InlineBytecodeGenerator.java:287)
                    ... 58 more


{noformat}

> JDK 25 test failures w/mockito -- even when using assumeWorkingMockito()
> ------------------------------------------------------------------------
>
>                 Key: SOLR-17718
>                 URL: https://issues.apache.org/jira/browse/SOLR-17718
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Chris M. Hostetter
>            Priority: Major
>
> Test that use Mockito (currently) fail in jenkins jobs using JDK 25 due to 
> the following underlying error...
> {noformat}
> Caused by:
> java.lang.IllegalArgumentException: Java 25 (69) is not supported by the 
> current version of Byte Buddy which officially supports Java 24 (68) - update 
> Byte Buddy or set net.bytebuddy.experimental as a VM property
>     at net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:120)
> {noformat}
> Note that this happens during the call to {{Mockito.mock(Foo.class)}} -- even 
> in tests that preceed all use of Mockito w/ our custom 
> {{SolrTestCaseJ4.assumeWorkingMockito()}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to