Patrick Johnsn created GEODE-10217:
--------------------------------------

             Summary: Mockito Unable to Mock 
org.apache.geode.internal.cache.DiskRegion
                 Key: GEODE-10217
                 URL: https://issues.apache.org/jira/browse/GEODE-10217
             Project: Geode
          Issue Type: Bug
          Components: core, tests
            Reporter: Patrick Johnsn


Mokito cannot mock DiskRegion, DiskRegionView, and AbstractDiskRegion because 
Byte Buddy could not instrument all classes within the mock's type hierarchy.
{noformat}
DiskEntryHelperTest > doSynchronousWriteReturnsTrueWhenDiskRegionIsSync FAILED
10:19:40    org.mockito.exceptions.base.MockitoException: 
10:19:40    Mockito cannot mock this class: class 
org.apache.geode.internal.cache.DiskRegion.
10:19:40
10:19:40    If you're not sure why you're getting this error, please report to 
the mailing list.
10:19:40
10:19:40
10:19:40    Java               : 1.8
10:19:40    JVM vendor name    : BellSoft
10:19:40    JVM vendor version : 25.322-b06
10:19:40    JVM name           : OpenJDK 64-Bit Server VM
10:19:40    JVM version        : 1.8.0_322-b06
10:19:40    JVM info           : mixed mode
10:19:40    OS name            : Linux
10:19:40    OS version         : 5.4.0-1069-gcp
10:19:40
10:19:40
10:19:40    You are seeing this disclaimer because Mockito is configured to 
create inlined mocks.
10:19:40    You can learn about inline mocks and their limitations under item 
#39 of the Mockito class javadoc.
10:19:40
10:19:40    Underlying exception : 
org.mockito.exceptions.base.MockitoException: Could not modify all classes 
[class org.apache.geode.internal.cache.DiskRegion, interface 
org.apache.geode.internal.cache.persistence.DiskRegionView, class 
org.apache.geode.internal.cache.AbstractDiskRegion]
10:19:40        at 
org.apache.geode.internal.cache.entries.DiskEntryHelperTest.<init>(DiskEntryHelperTest.java:44)
10:19:40
10:19:40        Caused by:
10:19:40        org.mockito.exceptions.base.MockitoException: Could not modify 
all classes [class org.apache.geode.internal.cache.DiskRegion, interface 
org.apache.geode.internal.cache.persistence.DiskRegionView, class 
org.apache.geode.internal.cache.AbstractDiskRegion]
10:19:40            at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:157)
10:19:40            at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:371)
10:19:40            at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:179)
10:19:40            at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:382)
10:19:40            ... 1 more
10:19:40
10:19:40            Caused by:
10:19:40            java.lang.IllegalStateException: 
10:19:40            Byte Buddy could not instrument all classes within the 
mock's type hierarchy
10:19:40
10:19:40            This problem should never occur for javac-compiled classes. 
This problem has been observed for classes that are:
10:19:40             - Compiled by older versions of scalac
10:19:40             - Classes that are part of the Android distribution
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.triggerRetransformation(InlineBytecodeGenerator.java:280)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.mockClass(InlineBytecodeGenerator.java:213)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.lambda$mockClass$0(TypeCachingBytecodeGenerator.java:47)
10:19:40                at 
net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:157)
10:19:40                at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:371)
10:19:40                at 
net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:179)
10:19:40                at 
net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:382)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.mockClass(TypeCachingBytecodeGenerator.java:40)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMockType(InlineDelegateByteBuddyMockMaker.java:389)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.doCreateMock(InlineDelegateByteBuddyMockMaker.java:349)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.createMock(InlineDelegateByteBuddyMockMaker.java:328)
10:19:40                at 
org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.createMock(InlineByteBuddyMockMaker.java:56)
10:19:40                at 
org.mockito.internal.util.MockUtil.createMock(MockUtil.java:53)
10:19:40                at 
org.mockito.internal.MockitoCore.mock(MockitoCore.java:96)
10:19:40                at org.mockito.Mockito.mock(Mockito.java:1965)
10:19:40                at org.mockito.Mockito.mock(Mockito.java:1880)
10:19:40                ... 1 more
10:19:40
10:19:40                Caused by:
10:19:40                java.lang.ExceptionInInitializerError
10:19:40                    at 
java.util.concurrent.ConcurrentHashMap.fullAddCount(ConcurrentHashMap.java:2526)
10:19:40                    at 
java.util.concurrent.ConcurrentHashMap.addCount(ConcurrentHashMap.java:2266)
10:19:40                    at 
java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1166)
10:19:40                    at 
java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097)
10:19:40                    at 
org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:139)
10:19:40                    at 
org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
10:19:40                    at 
org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:169)
10:19:40                    at java.lang.Object.equals(Object.java:149)
10:19:40                    at java.lang.reflect.Method.equals(Method.java:317)
10:19:40                    at java.util.HashMap.getNode(HashMap.java:573)
10:19:40                    at java.util.HashMap.get(HashMap.java:558)
10:19:40                    at 
net.bytebuddy.utility.dispatcher.JavaDispatcher$ProxiedInvocationHandler.invoke(JavaDispatcher.java:1143)
10:19:40                    at 
net.bytebuddy.description.method.$Proxy44.getParameterCount(Unknown Source)
10:19:40                    at 
net.bytebuddy.description.method.ParameterList$ForLoadedExecutable.size(ParameterList.java:226)
10:19:40                    at 
net.bytebuddy.description.method.ParameterList$AbstractBase.asTypeList(ParameterList.java:105)
10:19:40                    at 
net.bytebuddy.description.method.MethodDescription$AbstractBase.getStackSize(MethodDescription.java:463)
10:19:40                    at 
net.bytebuddy.asm.Advice$ArgumentHandler$ForAdvice$Default$ForMethodEnter.mapped(Advice.java:4743)
10:19:40                    at 
net.bytebuddy.asm.Advice$Dispatcher$Inlining$CodeTranslationVisitor.visitVarInsn(Advice.java:9335)
10:19:40                    at 
net.bytebuddy.jar.asm.MethodVisitor.visitVarInsn(MethodVisitor.java:359)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:2408)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1514)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:744)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:424)
10:19:40                    at 
net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.apply(Advice.java:8325)
10:19:40                    at 
net.bytebuddy.asm.Advice$AdviceVisitor.onAfterExceptionTable(Advice.java:10579)
10:19:40                    at 
net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.considerEndOfExceptionTable(ExceptionTableSensitiveMethodVisitor.java:49)
10:19:40                    at 
net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitLabel(ExceptionTableSensitiveMethodVisitor.java:81)
10:19:40                    at 
net.bytebuddy.jar.asm.Label.accept(Label.java:358)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:2057)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1514)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:744)
10:19:40                    at 
net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:424)
10:19:40                    at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3951)
10:19:40                    at 
net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2213)
10:19:40                    at 
net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:224)
10:19:40                    at 
net.bytebuddy.dynamic.scaffold.inline.AbstractInliningDynamicTypeBuilder.make(AbstractInliningDynamicTypeBuilder.java:123)
10:19:40                    at 
net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3661)
10:19:40                    at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.transform(InlineBytecodeGenerator.java:394)
10:19:40                    at 
sun.instrument.TransformerManager.transform(TransformerManager.java:188)
10:19:40                    at 
sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
10:19:40                    at 
sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
10:19:40                    at 
sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144)
10:19:40                    at 
org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.triggerRetransformation(InlineBytecodeGenerator.java:276)
10:19:40                    ... 16 more
10:19:40
10:19:40                    Caused by:
10:19:40                    java.lang.NullPointerException
10:19:40                        at 
java.util.concurrent.ThreadLocalRandom.getProbe(ThreadLocalRandom.java:980)
10:19:40                        at 
java.util.concurrent.ConcurrentHashMap.fullAddCount(ConcurrentHashMap.java:2526)
10:19:40                        at 
java.util.concurrent.ConcurrentHashMap.addCount(ConcurrentHashMap.java:2266)
10:19:40                        at 
java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1166)
10:19:40                        at 
java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097)
10:19:40                        at 
org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:139)
10:19:40                        at 
org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
10:19:40                        at 
org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:169)
10:19:40                        at 
org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMocked(MockMethodAdvice.java:174)
10:19:40                        at 
java.util.Hashtable.isEmpty(Hashtable.java:245)
10:19:40                        at sun.misc.VM.getSavedProperty(VM.java:258)
10:19:40                        at 
java.util.concurrent.ThreadLocalRandom.initialSeed(ThreadLocalRandom.java:139)
10:19:40                        at 
java.util.concurrent.ThreadLocalRandom.<clinit>(ThreadLocalRandom.java:136)
10:19:40                        ... 59 more{noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to