VerifyError when running Spock-spec with layout / stub inside Eclipse

This worked:

Inside Eclipse, select the Spock specification, which has a (spock) mock or stub, and select Run as -> JUnit Test.

Suddenly I can no longer run them, but I get java.lang.VerifyError.

When starting specifications without a layout / stub, it works as expected, and when starting from the Gradle assembly, this does not happen.

This is the stack I get when running Spec with a stub from inside Eclipse:

java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final\ method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;\ [Ljava/lang/String;)V at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at net.sf.cglib.core.AbstractClassGenerator.<init>(AbstractClassGenerator.java:38) at net.sf.cglib.core.KeyFactory$Generator.<init>(KeyFactory.java:127) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:112) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) at org.spockframework.mock.runtime.ProxyBasedMockFactory$CglibMockFactory.createMock(ProxyBasedMockFactory.java:80) at org.spockframework.mock.runtime.ProxyBasedMockFactory.create(ProxyBasedMockFactory.java:49) at org.spockframework.mock.runtime.JavaMockFactory.create(JavaMockFactory.java:51) at org.spockframework.mock.runtime.CompositeMockFactory.create(CompositeMockFactory.java:44) at org.spockframework.lang.SpecInternals.createMock(SpecInternals.java:47) at org.spockframework.lang.SpecInternals.createMockImpl(SpecInternals.java:282) at org.spockframework.lang.SpecInternals.StubImpl(SpecInternals.java:131) at se.hd.taglib.TaglibSpecBase.stubPageContext(TaglibSpecBase.groovy:43) 

I didn’t give any arguments for the run configurations (because I didn’t need it before), but are there possibly some runtime variables or environments that I can set in the Run configuration to fix this problem?

  • Spock: org.spockframework:spock-core:0.7-groovy-2.0
  • Groovy: org.codehaus.groovy:groovy-all:2.0.6
  • Eclipse: Version: Juno Service Release 1 Build id: 20121004-1855 , (runs on jdk1.7.0_06.jdk, although the original level is set to 1.6)
  • Groovy -Eclipse plugin: 2.7.1.xx-RELEASE-20121219-0800-e42
+4
source share
1 answer

It looks like your path to Eclipse has the wrong version of CGLIB (or ASM). Spock 0.7 was compiled against cglib:cglib-nodep:2.2.2 .

+3
source

All Articles