just downloaded from 'master' and am doing a build. Everything was building fine until I got to grails-web-databinding
:grails-web-databinding:compileGroovy FAILED
FAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ':grails-web-databinding:compileGroovy'.
> Bad <init> method call from inside of a branch
Exception Details:
Location:
grails/web/mime/MimeType.<init>(Ljava/lang/String;)V @115: invokespecial
Reason:
Error exists in the bytecode
Bytecode:
0000000: 05bd 0004 5903 2b12 58b8 00a1 5359 0403
0000010: bd00 04b8 0040 1293 b800 a153 5910 ff12
0000020: 02b8 00a5 2a5f ab00 0000 00a2 0000 0004
0000030: a159 6e5c 0000 002a aad3 b1ff 0000 0053
0000040: b7d2 0ba6 0000 0066 e925 fa09 0000 0085
0000050: 5f5a 5903 32b8 0072 c000 585f 5904 32b8
0000060: 0072 c000 585f 5905 3212 93b8 0062 c000
0000070: 935f 57b7 0031 a700 5c5f 5a59 0332 b800
0000080: 72c0 0058 5f57 b700 a7a7 0049 5f5a 5903
0000090: 32b8 0072 c000 585f 5904 3212 93b8 0062
00000a0: c000 935f 57b7 00a9 a700 2a5f 5a59 0332
00000b0: b800 72c0 0058 5f59 0432 b800 72c0 0058
00000c0: 5f57 b700 aca7 000d bb00 ae59 12b0 b700
00000d0: b1bf 57b1
Stackmap Table:
full_frame(@80, {UninitializedThis,Object[#88]},{Object[#94],UninitializedThis})
full_frame(@121,{UninitializedThis,Object[#88]},
{Object[#94],UninitializedThis})
full_frame(@140,{UninitializedThis,Object[#88]},{Object[#94],UninitializedThis})
{UninitializedThis,Object[#88]},{Object[#94],UninitializedThis})
full_frame(@171,
full_frame(@200,{UninitializedThis,Object[#88]},
{Object[#94],UninitializedThis})
{Object[#2],Object[#88]}
full_frame(@210,,
{Object[#94]})
There are verifier bugs in Oracle/OpenJDK 7u65, 7u67, 8u11 and 8u20 , see https://bugs.openjdk.java.net/browse/JDK-8051012 .
This problem has been reported to the Groovy Jira http://jira.codehaus.org/browse/GROOVY-6951 . It's not a bug in Groovy and we are all waiting for 7u80 and 8u40 JDK updates to fix the problem.
More details about the problem in InfoQ article See http://www.infoq.com/news/2014/08/Java8-U11-Broke-Tools and http://www.takipiblog.com/2014/08/07/oracles-latest-java-8-update-broke-your-tools-how-did-it-happen/ . The articles mainly mention Java 8u11 breaking things, but the same problems are in Java 7u65/7u67 and 8u20 .
However in Java7 it's possible to use "-XX:-UseSplitVerifier" or "-Xverify:none" command line option to workaround the problems. In Java 8 the only work around is using the "-Xverify:none" jvm commandline option.
I recently ran into the same issue when Travis upgraded their JVM to 7u67 . They downgraded back to 7u60 . This was the issue: https://github.com/travis-ci/travis-ci/issues/2725