M
[EMAIL PROTECTED] wrote:
In order for me to get the deploy/undeploy manager functionality in tomcat to work, I have to run it with the host setting of unpacking set to false. This creates an issue in the VelocityManager. In the code (around line 153), context.getRealPath is called (several times). The servlet spec, though, specifies that the app server "must return null" for these methods if the servlet is being executed from an archive (section SRV.4.5). Now this all happens in a try catch block. However, when you construct a File with null you get a NullPointerException (not the IOException that is caught). As a result, the whole app crashes. I've put the stack trace below. However, this could be easily fixed by catching the npe. Alternatively, depending on the getRealPath method anywhere in the servlet is a bad idea. So, it should be replaced with getResource with everything in the class path. That is, unless, someone can tell me a reliable mechanism for getting actual file system paths in an archived servlet (would love to know this :)).
Thanx, LES
//======================================================================
=
// Stack Trace
//======================================================================
=
2003-06-07 16:21:41 StandardWrapperValve[webwork]: Allocate exception
for servlet webwork
javax.servlet.ServletException: Servlet.init() for servlet webwork threw
exception
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
a:963)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:6
68)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:210)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241
5)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:59
4)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56
5)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:619)
at java.lang.Thread.run(Thread.java:536)
----- Root Cause -----
java.lang.NullPointerException
at java.io.File.<init>(File.java:180)
at
com.opensymphony.webwork.views.velocity.VelocityManager.loadConfiguratio
n(VelocityManager.java:153)
at
com.opensymphony.webwork.views.velocity.VelocityManager.newVelocityEngin
e(VelocityManager.java:240)
at
com.opensymphony.webwork.views.velocity.VelocityManager.init(VelocityMan
ager.java:106)
at
com.opensymphony.webwork.dispatcher.ServletDispatcher.init(ServletDispat
cher.java:62)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
a:935)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:6
68)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:210)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241
5)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:59
4)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56
5)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:619)
at java.lang.Thread.run(Thread.java:536)
-----Original Message-----
From: Mike Cannon-Brookes [mailto:[EMAIL PROTECTED] Sent: Friday, June 06, 2003 9:21 PM
To: [EMAIL PROTECTED]
Subject: Re: [OS-webwork] Request to core developers
Erik,
OK - good idea. Any particular issues you want to point us at?
M
On 6/6/03 10:21 PM, "Erik Beeson" ([EMAIL PROTECTED]) penned the words:
It would be nice if the core developers could make comments on JIRA
issues
as they come in. I'm fairly familiar with the codebase as I've been involved with it from the start, and it would be easy for me to fix a
lot
of the issues in JIRA, but I'm always afraid that a proposed solution isn't a good one, or that some other thing in development will fix a particular issue or something like that. It would be nice if issues
had a
little comment, "This looks good" "Let's rethink this" "This isn't a
good
idea", etc. Then anybody who knows the code can jump in anywhere
without
worrying about breaking things.
Because I'm sure the core team doesn't have enough to do ;)
--Erik
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The
best
thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork