Dávid Paksy created ZOOKEEPER-5039:
--------------------------------------

             Summary: Upgrade Mockito to 5.23.0 for JDK25
                 Key: ZOOKEEPER-5039
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-5039
             Project: ZooKeeper
          Issue Type: Task
            Reporter: Dávid Paksy


With the current 4.9.0 Mockito version tests are failing when JDK25 is used
{noformat}
[ERROR] testACLDigestHashHiding_OnlyAdmin  Time elapsed: 0.07 s  <<< 
ERROR!org.mockito.exceptions.base.MockitoException: 
Mockito cannot mock this class: class org.apache.zookeeper.server.ZKDatabase.
If you're not sure why you're getting this error, please open an issue on 
GitHub.

Java               : 25JVM vendor name    : Eclipse AdoptiumJVM vendor version 
: 25.0.2+10-LTSJVM name           : OpenJDK 64-Bit Server VMJVM version        
: 25.0.2+10-LTSJVM info           : mixed mode, sharingOS name            : 
LinuxOS version         : 6.17.0-22-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 [class org.apache.zookeeper.server.ZKDatabase, class 
java.lang.Object]        at 
org.apache.zookeeper.server.FinalRequestProcessorTest.setUp(FinalRequestProcessorTest.java:67)
       at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)

...
Caused by: org.mockito.exceptions.base.MockitoException: Could not modify all 
classes [class org.apache.zookeeper.server.ZKDatabase, class java.lang.Object]  
  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)   
     ... 68 moreCaused 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:284)
    at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:217)
  at 
org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.lambda$mockClass$0(TypeCachingBytecodeGenerator.java:47)
        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:40)
 at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMockType(InlineDelegateByteBuddyMockMaker.java:396)
   at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:355)
     at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:334)
       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:88)   at 
org.mockito.Mockito.mock(Mockito.java:1998)  at 
org.mockito.Mockito.mock(Mockito.java:1913)  ... 68 moreCaused by: 
java.lang.IllegalArgumentException: Java 25 (69) is not supported by the 
current version of Byte Buddy which officially supports Java 19 (63) - update 
Byte Buddy or set net.bytebuddy.experimental as a VM property      at 
net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:96)        at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:4011)
   at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2224) at 
net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4050)
   at 
net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3734)
   at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.transform(InlineBytecodeGenerator.java:401)
  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:280)
    ... 83 more
[ERROR] testACLDigestHashHiding_UserCanAll  Time elapsed: 0.052 s  <<< ERROR!
{noformat}



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

Reply via email to