Hi,
I'm getting a null pointer exception from Aspectwerkz code during hot deployment in Tomcat 4 container. This happens when I try to deploy an aspect when the server is running . The same process works fine in Tomcat5. Here's the complete log :
Deployer::INFO - deploying aspect [net.sf.infrared.aspects.api.DomainAPIAspect] in class loader [WebappClassLoader
available:
Extension[activemq, implementationVendor=Protique, Ltd., implementationVersion=3.0, specificationVendor=Protique, Ltd.]
Extension[avalon-framework, implementationVendor=Apache Software Foundation, implementationVendorId=ASF, implementationVersion=4.1.4, specificationVendor=Apache Software Foundation, specificationVersion=1.0]
Extension[org.apache.commons.beanutils, implementationVendor=Apache Software Foundation, implementationVersion=1.6, specificationVendor=Apache Software Foundation, specificationVersion=1.6]
Extension[org.apache.commons.codec, implementationVendor=Apache Software Foundation, implementationVersion=1.3, specificationVendor=Apache Software Foundation, specificationVersion=1.3]
Extension[commons-collections, implementationVendor=Apache Software Foundation, implementationVendorId=, implementationVersion=3.1, specificationVendor=Apache Software Foundation, specificationVersion=3.1]
Extension[org.apache.commons.digester, implementationVendor="Apache Software Foundation", implementationVersion="1.6", specificationVendor="Apache Software Foundation", specificationVersion="1.6"]
Extension[org.apache.commons.discovery, implementationVendor=Apache Software Foundation, implementationVersion=0.2, specificationVendor=Apache Software Foundation, specificationVersion=1.0]
Extension[commons-httpclient, implementationVendor=Apache Software Foundation, implementationVersion=3.0.1, specificationVendor=Apache Software Foundation]
Extension[commons-lang, implementationVendor=Apache Software Foundation, implementationVersion=2.0, specificationVendor=Apache Software Foundation, specificationVersion=2.0]
Extension[org.apache.commons.logging, implementationVendor=Apache Software Foundation, implementationVersion=1.0.4, specificationVendor=Apache Software Foundation, specificationVersion=1.0]
Extension[commons-messenger, implementationVendor=Apache Software Foundation, implementationVendorId=, implementationVersion=1.0-dev-14, specificationVendor=Apache Software Foundation, specificationVersion=]
Extension[commons-net, implementationVendor=The Apache Software Foundation, implementationVersion=1.4.1, specificationVendor=The Apache Software Foundation, specificationVersion=1.4.1]
Extension[commons-pool, implementationVendor=The Apache Software Foundation, implementationVendorId=org.apache, implementationVersion=1.4, specificationVendor=The Apache Software Foundation, specificationVersion=1.4]
Extension[commons-validator, implementationVendor=The Apache Software Foundation, implementationVendorId=org.apache, implementationVersion=1.3.1, specificationVendor=The Apache Software Foundation, specificationVersion=1.3.1]
Extension[commons-vfs, implementationVendor=The Apache Software Foundation, implementationVendorId=org.apache, implementationVersion=1.0, specificationVendor=The Apache Software Foundation]
Extension[dom4j, implementationVendor=MetaStuff Ltd., implementationVersion=1.6.1, specificationVendor=MetaStuff Ltd.]
Extension[javax.xml.bind, specificationVendor=Sun Microsystems, Inc., specificationVersion=2.1]
Extension[com.sun.xml.bind, implementationVendor=Sun Microsystems, Inc., implementationVendorId=com.sun, implementationVersion=2.1.7, specificationVendor=Sun Microsystems, Inc., specificationVersion=2.1]
Extension[com.sun.xml.bind, implementationVendor=Sun Microsystems, Inc., implementationVendorId=com.sun, implementationVersion=2.1.7, specificationVendor=Sun Microsystems, Inc., specificationVersion=2.1]
Extension[jaxen, implementationVendor=Codehaus, implementationVersion=1.1-beta-8, specificationVendor=Codehaus]
Extension[javax.net.ssl, implementationVendor=Sun Microsystems, Inc., implementationVendorId=com.sun, implementationVersion=1.0.3_02, specificationVendor=Sun Microsystems, Inc., specificationVersion=1.0]
Extension[Crypto-J.jsafe.extension, implementationVendor=RSA Security, Inc., implementationVendorId=com.rsa, implementationVersion=3.5, specificationVendor=RSA Security, Inc., specificationVersion=3.5]
Extension[Crypto-J.jsafejce.extension, implementationVendor=RSA Security, Inc., implementationVendorId=com.rsa, implementationVersion=3.5, specificationVendor=RSA Security, Inc., specificationVersion=3.5]
Extension[Struts Framework, implementationVendor=Apache Software Foundation, implementationVendorId=org.apache, implementationVersion=1.0.1, specificationVendor=Apache Software Foundation, specificationVersion=1.0]
delegate: false
repositories:
/WEB-INF/classes/
required:
----------> Parent Classloader:
StandardClassLoader
available:
delegate: true
repositories:
required:
----------> Parent Classloader:
StandardClassLoader
available:
Extension[javax.activation, implementationVendor=Sun Microsystems, Inc., implementationVendorId=com.sun, implementationVersion=1.0.2, specificationVendor=Sun Microsystems, Inc., specificationVersion=1.0]
Extension[org.apache.tools.ant, implementationVendor=Apache Software Foundation, implementationVersion=1.6.1, specificationVendor=Apache Software Foundation, specificationVersion=1.6.1]
Extension[javax.mail, implementationVendor=Sun Microsystems, Inc., implementationVendorId=com.sun, implementationVersion=1.3.1, specificationVendor=Sun Microsystems, Inc., specificationVersion=1.3]
Extension[org.apache.commons.collections, implementationVendor=Apache Software Foundation, implementationVersion=2.1, specificationVendor=Apache Software Foundation, specificationVersion=2.1]
Extension[commons-dbcp, implementationVendor=Apache Software Foundation, implementationVendorId=, implementationVersion=1.1, specificationVendor=Apache Software Foundation, specificationVersion=]
Extension[org.apache.commons.logging, implementationVendor=Apache Software Foundation, implementationVersion=1.0.3, specificationVendor=Apache Software Foundation, specificationVersion=1.0]
Extension[commons-pool, implementationVendor=Apache Software Foundation, implementationVendorId=, implementationVersion=1.1, specificationVendor=Apache Software Foundation, specificationVersion=]
delegate: true
repositories:
file:/opt/etrade/p6/share/tomcat4/common/classes/
file:/opt/etrade/p6/share/tomcat4/common/endorsed/xmlParserAPIs.jar
file:/opt/etrade/p6/share/tomcat4/common/endorsed/xercesImpl.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/ant-launcher.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/activation.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/jndi.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/ant.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/mail.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/jta.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/commons-collections.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/commons-dbcp-1.1.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/commons-logging-api.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/commons-pool-1.1.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/jasper-compiler.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/jasper-runtime.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/jdbc2_0-stdext.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/naming-resources.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/naming-common.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/naming-factory.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/servlet.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/eeDiagnosticAspectwerkz-1.0.jar
file:/opt/etrade/p6/share/tomcat4/common/lib/aspectwerkz-jdk5-2.0.jar
required:
----------> Parent Classloader:
sun.misc.Launcher$AppClassLoader@18e3e60
]
java.lang.NullPointerException
at org.codehaus.aspectwerkz.definition.AspectDefinition.<init>(AspectDefinition.java:118)
at org.codehaus.aspectwerkz.definition.DocumentParser.parseAspectDefinition(DocumentParser.java:137)
at org.codehaus.aspectwerkz.transform.inlining.deployer.Deployer.deploy(Deployer.java:301)
at org.codehaus.aspectwerkz.transform.inlining.deployer.Deployer.deploy(Deployer.java:241)
at org.codehaus.aspectwerkz.transform.inlining.deployer.Deployer.deploy(Deployer.java:222)
at net.sf.infrared.aspects.AbstractBaseAspect.deploy(AbstractBaseAspect.java:93)
at com.etrade.ee.diagnosticservices.endpoint.DiagnosticWS.deployAspect(DiagnosticWS.java:130)
at com.etrade.ee.diagnosticservices.endpoint.DiagnosticWS.submitAspects(DiagnosticWS.java:55)
at DiagnosticWSNS.DiagnosticWSSoapBindingImpl.submitAspects(DiagnosticWSSoapBindingImpl.java:15)
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:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.sf.infrared.aspects.servlet.InfraREDServletFilter.doFilter(InfraREDServletFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at etrade.framework.filters.ssomockup.SSOMockFilter.doFilter(SSOMockFilter.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
I saw this piece of code from an online repository, looks like the aspectwerkz is faling to retreive the hashcode of the classloader. The same deployment log in Tomcat 5 looks like :
Deployer::INFO - deploying aspect [net.sf.infrared.aspects.api.DomainAPIAspect]] in class loader [WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@19bb25a
Does tomcat 4 require any different configuration compared to tomcat 5 ?
Any pointer on this will be highly appreciated.
Thanks