Overzealous class scanning
--------------------------
Key: TOMEE-41
URL: https://issues.apache.org/jira/browse/TOMEE-41
Project: TomEE
Issue Type: Bug
Environment: 1.0.0-beta-2-20111019.211229-11-plus
Reporter: Jozef Hartinger
Fix For: 1.0.0-beta-2
Having and extension A which provides optional integration with an extension B,
the deployment of an application that contains A but does not contain B seems
to fail with CNFE even though the optional integration classes are not used by
the application.
What should actually happen is that the ClassNotFoundException should be
suppressed by the deployer and the related beans should not be registered as
CDI beans, instead of failing the entire deployment.
INFO - Configuring enterprise application:
/home/jharting/jboss/testing/TOMEE/apache-tomee-plus-1.0.0-beta-2-SNAPSHOT/webapps/faces-shortly
java.lang.NoClassDefFoundError: Lorg/jboss/seam/security/Identity;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at
org.apache.xbean.finder.AnnotationFinder.findAnnotatedFields(AnnotationFinder.java:638)
at
org.apache.openejb.config.rules.CheckInjectionPointUsage.validate(CheckInjectionPointUsage.java:35)
at
org.apache.openejb.config.rules.ValidationBase.validate(ValidationBase.java:45)
at org.apache.openejb.config.AppValidator.validate(AppValidator.java:88)
at
org.apache.openejb.config.ValidateModules.deploy(ValidateModules.java:29)
at
org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:263)
at
org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:692)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:448)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:405)
at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:117)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:932)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
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:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: java.lang.ClassNotFoundException: org.jboss.seam.security.Identity
at
org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:98)
at
org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:65)
... 46 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira