bpipe
bpipe copied to clipboard
Error on all tests: "ERROR: No HTML report was generated for test" caused by VerifyError: Bad method call from inside of a branch
My environment is Groovy Version: 2.3.7 JVM: 1.7.0_71 Vendor: Oracle Corporation OS: Mac OS X
When I try to run bpipe tests, I get "VerifyError: Bad method call from inside of a branch". Googling this led to: http://zeroturnaround.com/forums/topic/verifyerror-bad-method-call-from-inside-of-a-branch/ which says: "Don’t know if it is a JDK bug or not; they opted to make the verifier more strict, disallowing something that’s been allowed in all previous versions. This “feature” is used not only by JRebel, but other libraries/frameworks/JVM-languages out there use this as well."
The best workaround seems to be to running the JVM with the -noverify flag. This flag turns off Bytecode Verification - a JVM feature that checks for things like:
- array boundaries
- variable scope
- execution cannot fall off the end of the code
- etc.
Ps. The full VerifyError error message was:
Exception in thread "Thread-4" java.lang.VerifyError: Bad <init> method call from inside of a branch
Exception Details:
Location:
bpipe/Concurrency$1.<init>(Lbpipe/Concurrency;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V @168: invokespecial
Reason:
Error exists in the bytecode
Bytecode:
0000000: b800 1a3a 082b 3a09 1909 2a5f b500 1c19
0000010: 0957 1006 bd00 1e59 032c 5359 042d 5359
0000020: 0519 0453 5906 1905 5359 0719 0653 5908
0000030: 1907 5359 10ff 1204 b800 242a 5fab 0000
0000040: 0000 0144 0000 0004 2d40 6985 0000 002b
0000050: 2d8a 4adb 0000 0071 31e5 39de 0000 00b7
0000060: 70f3 c614 0000 010a 5f5a 5903 32b8 002a
0000070: 5f59 0432 b800 2a5f 5905 32b8 002e 5d58
0000080: 5906 3212 30b8 0036 c000 30c0 0030 5f59
0000090: 0732 1238 b800 3cc0 0038 5f59 0832 123e
00000a0: b800 3cc0 003e 5f57 b700 41a7 00e0 5f5a
00000b0: 5903 32b8 002a 5f59 0432 b800 2a5f 5905
00000c0: 32b8 002e 5d58 5906 3212 30b8 0036 c000
00000d0: 30c0 0030 5f59 0732 1238 b800 3cc0 0038
00000e0: 5f59 0832 1243 b800 3cc0 0043 5f57 b700
00000f0: 46a7 009a 5f5a 5903 32b8 002a 5f59 0432
0000100: b800 2a5f 5905 32b8 002e 5d58 5906 3212
0000110: 30b8 0036 c000 30c0 0030 5f59 0732 1238
0000120: b800 3cc0 0038 5f59 0832 1243 b800 3cc0
0000130: 0043 5f59 1006 3212 3eb8 003c c000 3e5f
0000140: 57b7 0049 a700 475f 5a59 0332 b800 2a5f
0000150: 5904 32b8 002a 5f59 0532 b800 2e5d 5859
0000160: 0632 1230 b800 36c0 0030 c000 305f 5907
0000170: 3212 38b8 003c c000 385f 57b7 004c a700
0000180: 0dbb 004e 5912 50b7 0053 bf57 2ab6 0057
0000190: 3a0a 190a 2a5f b500 5919 0a57 b1
Stackmap Table:
full_frame(@104,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
full_frame(@174,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
full_frame(@244,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
full_frame(@327,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
full_frame(@385,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
full_frame(@395,{Object[#2],Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103]})
at bpipe.Concurrency.initPool(Concurrency.groovy:116)
at bpipe.Concurrency$initPool.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
at bpipe.Concurrency.<init>(Concurrency.groovy:93)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
at bpipe.Concurrency.<clinit>(Concurrency.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1722)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3458)
at org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite.getProperty(ClassMetaClassGetPropertySite.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
at bpipe.Runner$_main_closure9.doCall(Runner.groovy:327)
at bpipe.Runner$_main_closure9.doCall(Runner.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
at groovy.lang.Closure.call(Closure.java:423)
at groovy.lang.Closure.call(Closure.java:417)
at groovy.lang.Closure.run(Closure.java:504)
at java.lang.Thread.run(Thread.java:745)
====================================================================================================
| Starting Pipeline at 2014-11-02 12:34 |
====================================================================================================
=========================================== Stage hello ============================================
Internal error: java.lang.NoClassDefFoundError: Could not initialize class bpipe.Concurrency
=========================================== Bpipe Error ============================================
An error occurred executing your pipeline:
Could not initialize class bpipe.Concurrency
Please see the details below for more information.
========================================== Error Details ===========================================
java.lang.NoClassDefFoundError: Could not initialize class bpipe.Concurrency
at bpipe.executor.ThrottledDelegatingCommandExecutor$_start_closure2.doCall(ThrottledDelegatingCommandExecutor.groovy:60)
at bpipe.executor.ThrottledDelegatingCommandExecutor.start(ThrottledDelegatingCommandExecutor.groovy:60)
at bpipe.CommandManager.start(CommandManager.groovy:179)
at bpipe.PipelineContext.async(PipelineContext.groovy:1607)
at bpipe.PipelineContext.async(PipelineContext.groovy)
at bpipe.PipelineContext.exec(PipelineContext.groovy:1339)
at bpipe.PipelineContext.exec(PipelineContext.groovy)
at bpipe.PipelineContext.exec(PipelineContext.groovy:1296)
at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:150)
at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
at test.groovy$_run_closure1_closure4_closure5.doCall(test.groovy.groovy:5)
at test.groovy$_run_closure1_closure4_closure5.doCall(test.groovy.groovy)
at bpipe.PipelineContext.produceImpl(PipelineContext.groovy:1018)
at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:118)
at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
at test.groovy$_run_closure1_closure4.doCall(test.groovy.groovy:4)
at test.groovy$_run_closure1_closure4.doCall(test.groovy.groovy)
at bpipe.PipelineContext.preserveImpl(PipelineContext.groovy:1094)
at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:121)
at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
at test.groovy$_run_closure1.doCall(test.groovy.groovy:3)
at bpipe.PipelineStage.invokeMethod(PipelineStage.groovy)
at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy:292)
at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy)
at bpipe.PipelineStage.runBody(PipelineStage.groovy:291)
at bpipe.PipelineStage.this$2$runBody(PipelineStage.groovy)
at bpipe.PipelineStage.run(PipelineStage.groovy:220)
at bpipe.PipelineCategory$_plus_closure1.doCall(PipelineCategory.groovy:127)
at bpipe.PipelineStage.invokeMethod(PipelineStage.groovy)
at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy:292)
at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy)
at bpipe.PipelineStage.runBody(PipelineStage.groovy:291)
at bpipe.PipelineStage.this$2$runBody(PipelineStage.groovy)
at bpipe.PipelineStage.run(PipelineStage.groovy:220)
at bpipe.Pipeline.runSegment(Pipeline.groovy:513)
at bpipe.Pipeline$_execute_closure8.doCall(Pipeline.groovy:664)
at bpipe.Pipeline$_execute_closure8.doCall(Pipeline.groovy)
at bpipe.Pipeline.execute(Pipeline.groovy:627)
at bpipe.Pipeline.execute(Pipeline.groovy)
at bpipe.Pipeline.this$2$execute(Pipeline.groovy)
at bpipe.Pipeline$this$2$execute$1.call(Unknown Source)
at bpipe.Pipeline.run(Pipeline.groovy:475)
at bpipe.Pipeline$run.callStatic(Unknown Source)
at bpipe.Pipeline.run(Pipeline.groovy:435)
at test.groovy.run(test.groovy.groovy:18)
at test.groovy$run.call(Unknown Source)
at bpipe.Runner.main(Runner.groovy:375)