[
https://issues.apache.org/jira/browse/OPENEJB-1523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Werner Froidevaux updated OPENEJB-1523:
---------------------------------------
Description:
When deploying an EAR (containing web modules) I get the following Exception:
<pre>
org.apache.openejb.OpenEJBException: Creating application failed:
/home/wfro/temp/apache-tomcat-6.0.29/apps/opencrx-core-CRX: null
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:679)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:450)
at
org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:368)
at
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:280)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
at
org.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:161)
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.openejb.loader.Embedder.init(Embedder.java:75)
at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:137)
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.openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:92)
at
org.apache.openejb.tomcat.loader.OpenEJBListener.lifecycleEvent(OpenEJBListener.java:64)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.StandardServer.initialize(StandardServer.java:770)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:548)
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.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
at
org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1389)
at
org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:188)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:658)
... 28 more
</pre>
Debugging shows that the reason is in the constructor of TomcatWebAppBuilder. I
can fix the NullPointer if I patch the constructor as follows:
OLD:
<pre>
for (LifecycleListener listener : host.findLifecycleListeners()) {
if (listener instanceof HostConfig) {
HostConfig hostConfig = (HostConfig) listener;
deployers.put(host.getName(), hostConfig);
}
}
</pre>
NEW:
<pre>
if (listener instanceof HostConfig) {
HostConfig hostConfig = (HostConfig) listener;
if(hostConfig.getConfigBaseName() != null) {
deployers.put(host.getName(), hostConfig);
}
}
</pre>
In some cases the method getConfigBaseName() returns null (I suppose in the
cases when the context.xml is put in the web module META-INF and not in
conf/Catalina/localhost).
Adding a hostConfig to the deployers map with hostConfig.getConfigBaseName() ==
null results in the reported NPE in
org.apache.catalina.startup.HostConfig.manageApp.
was:
When deploying an EAR (containing web modules) I get the following Exception:
org.apache.openejb.OpenEJBException: Creating application failed:
/home/wfro/temp/apache-tomcat-6.0.29/apps/opencrx-core-CRX: null
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:679)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:450)
at
org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:368)
at
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:280)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
at
org.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:161)
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.openejb.loader.Embedder.init(Embedder.java:75)
at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:137)
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.openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:92)
at
org.apache.openejb.tomcat.loader.OpenEJBListener.lifecycleEvent(OpenEJBListener.java:64)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.StandardServer.initialize(StandardServer.java:770)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:548)
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.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
at
org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1389)
at
org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:188)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:658)
... 28 more
Debugging shows that the reason is in the constructor of TomcatWebAppBuilder. I
can fix the NullPointer if I patch the constructor as follows:
OLD:
for (LifecycleListener listener : host.findLifecycleListeners()) {
if (listener instanceof HostConfig) {
HostConfig hostConfig = (HostConfig) listener;
deployers.put(host.getName(), hostConfig);
}
}
NEW:
if (listener instanceof HostConfig) {
HostConfig hostConfig = (HostConfig) listener;
if(hostConfig.getConfigBaseName() != null) {
deployers.put(host.getName(), hostConfig);
}
}
In some cases the method getConfigBaseName() returns null (I suppose in the
cases when the context.xml is put in the web module META-INF and not in
conf/Catalina/localhost).
Adding a hostConfig to the deployers map with hostConfig.getConfigBaseName() ==
null results in the reported NPE in
org.apache.catalina.startup.HostConfig.manageApp.
> TomEE 6.0.26 / 3.1.4: NPE in org.apache.catalina.startup.HostConfig.manageApp
> -----------------------------------------------------------------------------
>
> Key: OPENEJB-1523
> URL: https://issues.apache.org/jira/browse/OPENEJB-1523
> Project: OpenEJB
> Issue Type: Bug
> Components: tomcat
> Affects Versions: 3.1.4
> Environment: Apache TomEE - Pre-bundled Tomcat
> Apache Tomcat 6.0.29
> Apache OpenEJB 3.1.4
> Reporter: Werner Froidevaux
>
> When deploying an EAR (containing web modules) I get the following Exception:
> <pre>
> org.apache.openejb.OpenEJBException: Creating application failed:
> /home/wfro/temp/apache-tomcat-6.0.29/apps/opencrx-core-CRX: null
> at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:679)
> at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:450)
> at
> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:368)
> at
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:280)
> at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
> at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
> at
> org.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:161)
> 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.openejb.loader.Embedder.init(Embedder.java:75)
> at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:137)
> 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.openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:92)
> at
> org.apache.openejb.tomcat.loader.OpenEJBListener.lifecycleEvent(OpenEJBListener.java:64)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> at
> org.apache.catalina.core.StandardServer.initialize(StandardServer.java:770)
> at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
> at org.apache.catalina.startup.Catalina.load(Catalina.java:548)
> 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.load(Bootstrap.java:261)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by: java.lang.NullPointerException
> at
> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1389)
> at
> org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:188)
> at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:658)
> ... 28 more
> </pre>
> Debugging shows that the reason is in the constructor of TomcatWebAppBuilder.
> I can fix the NullPointer if I patch the constructor as follows:
> OLD:
> <pre>
> for (LifecycleListener listener : host.findLifecycleListeners()) {
> if (listener instanceof HostConfig) {
> HostConfig hostConfig = (HostConfig) listener;
> deployers.put(host.getName(), hostConfig);
> }
> }
> </pre>
> NEW:
> <pre>
> if (listener instanceof HostConfig) {
> HostConfig hostConfig = (HostConfig) listener;
> if(hostConfig.getConfigBaseName() != null) {
> deployers.put(host.getName(), hostConfig);
> }
> }
> </pre>
> In some cases the method getConfigBaseName() returns null (I suppose in the
> cases when the context.xml is put in the web module META-INF and not in
> conf/Catalina/localhost).
> Adding a hostConfig to the deployers map with hostConfig.getConfigBaseName()
> == null results in the reported NPE in
> org.apache.catalina.startup.HostConfig.manageApp.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira