DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=29093>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=29093

When reloading context IllegalStateException is not catched

           Summary: When reloading context IllegalStateException is not
                    catched
           Product: Tomcat 5
           Version: 5.0.24
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


We have noticed the following behaviour of manager application: sometimes when 
reloading context, it is stopped and than it is not started. It happens when 
server is heavily loaded.

We think, that the reason of it is the following:

org.apache.catalina.core.StandardContext, method reload()

...
        try {
            stop();
        } catch (LifecycleException e) {
            log.error(sm.getString("standardContext.stoppingContext"), e);
        }

        try {
            start();
        } catch (LifecycleException e) {
            log.error(sm.getString("standardContext.startingContext"), e);
        }
...

Method stop() can throw a runtime exception 
(org.apache.catalina.session.StandardSession):

    public void removeAttribute(String name, boolean notify) {

        // Validate our current state
        if (!isValid())
            throw new IllegalStateException
                (sm.getString("standardSession.removeAttribute.ise"));

        removeAttributeInternal(name, notify);

    }



Is it possible to catch this exception:


        try {
            stop();
        } catch (LifecycleException e) {
            log.error(sm.getString("standardContext.stoppingContext"), e);
        } catch (IllegalStateException illegalStateException) {
            log.error(sm.getString("standardContext.stoppingContext"), 
illegalStateException);
        }


Stack trace is provided:

java.lang.IllegalStateException: removeAttribute: Session already invalidated
        at org.apache.catalina.session.StandardSession.removeAttribute
(StandardSession.java:1144)
        at org.apache.catalina.session.StandardSession.removeAttribute
(StandardSession.java:1119)
        at org.apache.catalina.session.StandardSession.writeObject
(StandardSession.java:1401)
        at org.apache.catalina.session.StandardSession.writeObjectData
(StandardSession.java:899)
        at org.apache.catalina.session.StandardManager.doUnload
(StandardManager.java:539)
        at org.apache.catalina.session.StandardManager.unload
(StandardManager.java:485)
        at org.apache.catalina.session.StandardManager.stop
(StandardManager.java:687)
        at org.apache.catalina.core.StandardContext.stop
(StandardContext.java:4474)
        at org.apache.catalina.core.StandardContext.reload
(StandardContext.java:3015)
        at org.apache.catalina.manager.ManagerServlet.reload
(ManagerServlet.java:1014)
        at org.apache.catalina.manager.HTMLManagerServlet.reload
(HTMLManagerServlet.java:477)
        at org.apache.catalina.manager.HTMLManagerServlet.doGet
(HTMLManagerServlet.java:100)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:540)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
        at org.apache.catalina.valves.RequestFilterValve.process
(RequestFilterValve.java:287)
        at org.apache.catalina.valves.RemoteAddrValve.invoke
(RemoteAddrValve.java:84)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service
(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:793)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:702)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:571)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:644)
        at java.lang.Thread.run(Thread.java:534)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to