[ 
https://issues.apache.org/jira/browse/GEODE-97?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirk Lund updated GEODE-97:
---------------------------
    Description: 
Several unit tests using jmock/cglib/asm fail when run using JDK 8:
{code}
com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest > testCanonicalIds 
FAILED
    java.lang.IllegalArgumentException
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at 
net.sf.cglib.proxy.BridgeMethodResolver.resolveAll(BridgeMethodResolver.java:61)
        at net.sf.cglib.proxy.Enhancer.emitMethods(Enhancer.java:911)
        at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:498)
        at 
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at 
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
        at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
        at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
        at 
org.jmock.lib.legacy.ClassImposteriser.proxyClass(ClassImposteriser.java:121)
        at 
org.jmock.lib.legacy.ClassImposteriser.imposterise(ClassImposteriser.java:66)
        at 
org.jmock.internal.ReturnDefaultValueAction.invoke(ReturnDefaultValueAction.java:82)
        at 
org.jmock.internal.InvocationExpectation.invoke(InvocationExpectation.java:165)
        at 
org.jmock.internal.InvocationDispatcher.dispatch(InvocationDispatcher.java:81)
        at org.jmock.Mockery.dispatch(Mockery.java:244)
        at org.jmock.Mockery.access$100(Mockery.java:29)
        at org.jmock.Mockery$MockObject.invoke(Mockery.java:284)
        at 
org.jmock.internal.InvocationDiverter.invoke(InvocationDiverter.java:27)
        at 
org.jmock.internal.FakeObjectMethods.invoke(FakeObjectMethods.java:38)
        at 
org.jmock.internal.SingleThreadedPolicy$1.invoke(SingleThreadedPolicy.java:21)
        at 
org.jmock.lib.legacy.ClassImposteriser$4.invoke(ClassImposteriser.java:136)
        at 
com.gemstone.gemfire.internal.cache.persistence.DiskRegionView$$EnhancerByCGLIB$$dc027cdd.getFlags(<generated>)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFile.writeRegionConfig(DiskInitFile.java:1796)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFile.createRegion(DiskInitFile.java:2081)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest.testCanonicalIds(DiskInitFileJUnitTest.java:81)
{code}
The following dependencies change in gradle seems to fix the problem:
{code}
-    testRuntime 'cglib:cglib-nodep:3.1'
+    testRuntime 'cglib:cglib:3.1'
{code}
The cglib-nodep jar has an "asm" package while the cglib jar does not. This 
causes the build to use asm 5.0.3 as defined in the dependencies.

  was:
DiskInitFileJUnitTest.testCanonicalIds fails when run on Windows 7. This is 
from running the gradle test target using ./gradlew command-line in a fresh 
clone of geode develop:
{code}
com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest > testCanonicalIds 
FAILED
    java.lang.IllegalArgumentException
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
        at 
net.sf.cglib.proxy.BridgeMethodResolver.resolveAll(BridgeMethodResolver.java:61)
        at net.sf.cglib.proxy.Enhancer.emitMethods(Enhancer.java:911)
        at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:498)
        at 
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at 
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
        at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
        at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
        at 
org.jmock.lib.legacy.ClassImposteriser.proxyClass(ClassImposteriser.java:121)
        at 
org.jmock.lib.legacy.ClassImposteriser.imposterise(ClassImposteriser.java:66)
        at 
org.jmock.internal.ReturnDefaultValueAction.invoke(ReturnDefaultValueAction.java:82)
        at 
org.jmock.internal.InvocationExpectation.invoke(InvocationExpectation.java:165)
        at 
org.jmock.internal.InvocationDispatcher.dispatch(InvocationDispatcher.java:81)
        at org.jmock.Mockery.dispatch(Mockery.java:244)
        at org.jmock.Mockery.access$100(Mockery.java:29)
        at org.jmock.Mockery$MockObject.invoke(Mockery.java:284)
        at 
org.jmock.internal.InvocationDiverter.invoke(InvocationDiverter.java:27)
        at 
org.jmock.internal.FakeObjectMethods.invoke(FakeObjectMethods.java:38)
        at 
org.jmock.internal.SingleThreadedPolicy$1.invoke(SingleThreadedPolicy.java:21)
        at 
org.jmock.lib.legacy.ClassImposteriser$4.invoke(ClassImposteriser.java:136)
        at 
com.gemstone.gemfire.internal.cache.persistence.DiskRegionView$$EnhancerByCGLIB$$dc027cdd.getFlags(<generated>)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFile.writeRegionConfig(DiskInitFile.java:1796)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFile.createRegion(DiskInitFile.java:2081)
        at 
com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest.testCanonicalIds(DiskInitFileJUnitTest.java:81)
{code}



> Unit tests using jmock fail due to cglib/asm incompatibility with JDK 8
> -----------------------------------------------------------------------
>
>                 Key: GEODE-97
>                 URL: https://issues.apache.org/jira/browse/GEODE-97
>             Project: Geode
>          Issue Type: Bug
>            Reporter: Kirk Lund
>
> Several unit tests using jmock/cglib/asm fail when run using JDK 8:
> {code}
> com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest > testCanonicalIds 
> FAILED
>     java.lang.IllegalArgumentException
>         at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
>         at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
>         at net.sf.cglib.asm.ClassReader.<init>(Unknown Source)
>         at 
> net.sf.cglib.proxy.BridgeMethodResolver.resolveAll(BridgeMethodResolver.java:61)
>         at net.sf.cglib.proxy.Enhancer.emitMethods(Enhancer.java:911)
>         at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:498)
>         at 
> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
>         at 
> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
>         at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
>         at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
>         at 
> org.jmock.lib.legacy.ClassImposteriser.proxyClass(ClassImposteriser.java:121)
>         at 
> org.jmock.lib.legacy.ClassImposteriser.imposterise(ClassImposteriser.java:66)
>         at 
> org.jmock.internal.ReturnDefaultValueAction.invoke(ReturnDefaultValueAction.java:82)
>         at 
> org.jmock.internal.InvocationExpectation.invoke(InvocationExpectation.java:165)
>         at 
> org.jmock.internal.InvocationDispatcher.dispatch(InvocationDispatcher.java:81)
>         at org.jmock.Mockery.dispatch(Mockery.java:244)
>         at org.jmock.Mockery.access$100(Mockery.java:29)
>         at org.jmock.Mockery$MockObject.invoke(Mockery.java:284)
>         at 
> org.jmock.internal.InvocationDiverter.invoke(InvocationDiverter.java:27)
>         at 
> org.jmock.internal.FakeObjectMethods.invoke(FakeObjectMethods.java:38)
>         at 
> org.jmock.internal.SingleThreadedPolicy$1.invoke(SingleThreadedPolicy.java:21)
>         at 
> org.jmock.lib.legacy.ClassImposteriser$4.invoke(ClassImposteriser.java:136)
>         at 
> com.gemstone.gemfire.internal.cache.persistence.DiskRegionView$$EnhancerByCGLIB$$dc027cdd.getFlags(<generated>)
>         at 
> com.gemstone.gemfire.internal.cache.DiskInitFile.writeRegionConfig(DiskInitFile.java:1796)
>         at 
> com.gemstone.gemfire.internal.cache.DiskInitFile.createRegion(DiskInitFile.java:2081)
>         at 
> com.gemstone.gemfire.internal.cache.DiskInitFileJUnitTest.testCanonicalIds(DiskInitFileJUnitTest.java:81)
> {code}
> The following dependencies change in gradle seems to fix the problem:
> {code}
> -    testRuntime 'cglib:cglib-nodep:3.1'
> +    testRuntime 'cglib:cglib:3.1'
> {code}
> The cglib-nodep jar has an "asm" package while the cglib jar does not. This 
> causes the build to use asm 5.0.3 as defined in the dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to