Bug 50087

Summary: When metadata-complete="false" throw illegal JVM_CONSTANT_Class name
Product: Tomcat 7 Reporter: heyoulin <heyoulin>
Component: CatalinaAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: trunk   
Target Milestone: ---   
Hardware: PC   
OS: All   

Description heyoulin 2010-10-13 09:36:12 UTC
When metadata-complete="false" and add groovy-all-1.7.2.jar to app lib throw

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:290)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:418)
Caused by: java.lang.ClassFormatError: groovy/jmx/builder/package-info : illegal JVM_CONSTANT_Class name: groovy/jmx/builder/package-info
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2804)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1144)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1639)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517)
	at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1952)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1915)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1802)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1761)
	at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1747)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1252)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:315)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4700)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1028)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:773)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1028)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:278)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:429)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:662)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:592)
	... 6 more
Comment 1 Konstantin Kolinko 2010-10-13 09:49:47 UTC
What is your JRE version?
Comment 2 heyoulin 2010-10-13 11:04:51 UTC
I try jdk1.6.0_21 and jrmc-4.0.1-1.6.0 both throw this exception. Only groovy-all-1.7.2 and not test on other groovy version. But this worked fine before until i use latest build.
Comment 3 Mark Thomas 2010-10-14 12:07:11 UTC
Fixed in trunk and will be in 7.0.4 onwards. You'll still see the stack trace (since that Groovy class has an invalid name) but context deployment will continue rather than failing.