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

Reply via email to