Skip to content

Hibernate Interface mocking is failing Ex: EventSource #7908

@DKiran512

Description

@DKiran512

Guava Version

33.4.8-jre

Description

I am trying to upgrade my application guava 33.2.0-jre to 33.4.8-jre causing bellow issue
mockito-core : 5.2.0
hibernate-core : 6.6.2.Final

Example

org.mockito.exceptions.base.MockitoException: 
Mockito cannot mock this class: interface org.hibernate.event.spi.EventSource.

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


Java               : 20
JVM vendor name    : Oracle Corporation
JVM vendor version : 20+36-2344
JVM name           : Java HotSpot(TM) 64-Bit Server VM
JVM version        : 20+36-2344
JVM info           : mixed mode, sharing
OS name            : Windows 11
OS version         : 10.0


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 : java.lang.NullPointerException: Cannot invoke "java.lang.annotation.Annotation.annotationType()" because "annotation" is null
	at test.com.EventSourceMockTest.testMockEventSource(EventBusMockTest.java:18)
	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.annotation.Annotation.annotationType()" because "annotation" is null
	at net.bytebuddy.description.annotation.AnnotationDescription$ForLoadedAnnotation.<init>(AnnotationDescription.java:657)
	at net.bytebuddy.description.annotation.AnnotationDescription$ForLoadedAnnotation.of(AnnotationDescription.java:692)
	at net.bytebuddy.description.annotation.AnnotationList$ForLoadedAnnotations.get(AnnotationList.java:260)
	at net.bytebuddy.description.annotation.AnnotationList$ForLoadedAnnotations.get(AnnotationList.java:217)
	at net.bytebuddy.description.annotation.AnnotationList$Explicit.get(AnnotationList.java:317)
	at net.bytebuddy.description.annotation.AnnotationList$Explicit.get(AnnotationList.java:274)
	at java.base/java.util.AbstractList$Itr.next(AbstractList.java:373)
	at net.bytebuddy.implementation.attribute.AnnotationAppender$ForTypeAnnotations.ofTypeVariable(AnnotationAppender.java:645)
	at net.bytebuddy.implementation.attribute.AnnotationAppender$ForTypeAnnotations.ofTypeVariable(AnnotationAppender.java:617)
	at net.bytebuddy.implementation.attribute.MethodAttributeAppender$ForInstrumentedMethod.apply(MethodAttributeAppender.java:198)
	at net.bytebuddy.implementation.attribute.MethodAttributeAppender$Compound.apply(MethodAttributeAppender.java:484)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyAttributes(TypeWriter.java:723)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:713)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:622)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$AccessBridgeWrapper.apply(TypeWriter.java:1293)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForCreation.create(TypeWriter.java:6043)
	at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2224)
	at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4055)
	at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3739)
	at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:3991)
	at org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator.mockClass(SubclassBytecodeGenerator.java:296)
	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.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:221)
	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:414)
	at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:373)
	at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:352)
	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:2104)
	at org.mockito.Mockito.mock(Mockito.java:2019)
	... 4 more

Expected Behavior

@mock should work for all hibernate Interface mocking with out failing or any changes are required from code side or any other compatibility versions are required please Just suggest here

Actual Behavior

org.mockito.exceptions.base.MockitoException:
Mockito cannot mock this class: interface org.hibernate.event.spi.EventSource.

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

Java : 20
JVM vendor name : Oracle Corporation
JVM vendor version : 20+36-2344
JVM name : Java HotSpot(TM) 64-Bit Server VM
JVM version : 20+36-2344
JVM info : mixed mode, sharing
OS name : Windows 11
OS version : 10.0

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 : java.lang.NullPointerException: Cannot invoke "java.lang.annotation.Annotation.annotationType()" because "annotation" is null
at test.com.EventSourceMockTest.testMockEventSource(EventBusMockTest.java:18)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.annotation.Annotation.annotationType()" because "annotation" is null
at net.bytebuddy.description.annotation.AnnotationDescription$ForLoadedAnnotation.(AnnotationDescription.java:657)
at net.bytebuddy.description.annotation.AnnotationDescription$ForLoadedAnnotation.of(AnnotationDescription.java:692)
at net.bytebuddy.description.annotation.AnnotationList$ForLoadedAnnotations.get(AnnotationList.java:260)
at net.bytebuddy.description.annotation.AnnotationList$ForLoadedAnnotations.get(AnnotationList.java:217)
at net.bytebuddy.description.annotation.AnnotationList$Explicit.get(AnnotationList.java:317)
at net.bytebuddy.description.annotation.AnnotationList$Explicit.get(AnnotationList.java:274)
at java.base/java.util.AbstractList$Itr.next(AbstractList.java:373)
at net.bytebuddy.implementation.attribute.AnnotationAppender$ForTypeAnnotations.ofTypeVariable(AnnotationAppender.java:645)
at net.bytebuddy.implementation.attribute.AnnotationAppender$ForTypeAnnotations.ofTypeVariable(AnnotationAppender.java:617)
at net.bytebuddy.implementation.attribute.MethodAttributeAppender$ForInstrumentedMethod.apply(MethodAttributeAppender.java:198)
at net.bytebuddy.implementation.attribute.MethodAttributeAppender$Compound.apply(MethodAttributeAppender.java:484)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyAttributes(TypeWriter.java:723)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:713)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:622)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$AccessBridgeWrapper.apply(TypeWriter.java:1293)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForCreation.create(TypeWriter.java:6043)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2224)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4055)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3739)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:3991)
at org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator.mockClass(SubclassBytecodeGenerator.java:296)
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.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:221)
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:414)
at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:373)
at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:352)
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:2104)
at org.mockito.Mockito.mock(Mockito.java:2019)
... 4 more

Packages

No response

Platforms

No response

Checklist

  • I agree to follow the code of conduct.

  • I can reproduce the bug with the latest version of Guava available.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions