The ASM 6 jar has a module-info.class file that gets incorporated into our jar via jarjar. We obviously should exclude that in our build and we do. We originally only had that build fix for 2_5_X and above builds because we didn't want to bump ASM version in a point release - but that change was later made without the accompanying build fix and that caused the module-info.class problem to resurface in 2.4.14 as well as cause several other bugs. The ASM change has been reverted for now, until we see whether the other issues can also be fixed. I'll do a 2.4.15 release after 2.5.0-rc1 so we have a more JDK9 friendly 2_4_X release.

Cheers, Paul.

On Wed, Mar 21, 2018 at 10:48 PM, Cédric Champeau <> wrote:
The question is why do we have a `module-info.class` file in groovy.jar. I thought we had fixed that. Or maybe in 2.4.15?

2018-03-21 13:46 GMT+01:00 Jochen Theodorou <>:

Am 21.03.2018 um 12:34 schrieb Blake McBride:
Thanks!  Turns out, this is a known problem with older versions of tomcat.  I don't think any changes in groovy are necessary.

just in case you are somebody else wants to know more

Unable to process Jar entry [module-info.class] from Jar [jar:file:/.../build/web/WEB-INF/lib/groovy-2.4.14.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19

module-info.class is for Java9 and requires a special flag available only in Java9 and later (constant pool entry with id 19). Thus for Tomcat under Java 8 the only solution is to ignore that or use a newer version of bcel that supports java9 and then ignore it. Because you cannot load it.

bye Jochen