On Thu, 31 May 2001, Jon Stevens wrote:

> on 5/31/01 10:11 AM, "Remy Maucherat" <[EMAIL PROTECTED]> wrote:
> 
> > Sorry.
> > 
> > The latest nightly (05/31) should have the fix. Does it work now ?
> > 
> > Remy
> 
> It works "better"...now, I have another strange case that is going on...
> 

To help debug future cases on the class reloader, I just checked in a
change that will cause voluminous debugging output from the web app class
loader if you add an element in conf/server.xml:

  <Context path="/scarab" ...>
    <Loader debug="99"/>
  </Context>

without having to modify and recompile Tomcat.  This output will go to
standard out (by default, to "logs/catalina.out").

> I followed my directions from before. Then, I hit a page that causes Turbine
> to require a "valid" Session, which is one that existed before the
> classreloading happened. Needless to say, I have NEVER seen this error
> happen before or had anyone report it...
> 
> But, I can't quite 100% prove yet that this is Tomcat and not Turbine that
> is having the problem so I will have to investigate further and come up with
> a definitive answer.
> 

What's happening around line 453 of Turbine.java?  You would legitimately
get this kind of a stack trace if you invalidate a session and then try to
call removeAttribute on it.  The rest of the trace indicates that you're
just processing a request as usual (i.e. it's not the reloading machinery
or anything involved here).

> Also, when is the slowness bug going to be fixed that Jason van Zyl reported
> a while back? It is KILLING our development time. Speed wise, Tomcat 4 runs
> like a dog with only 1 leg.
> 

Remy did some investigation of the hotspot that was reported, which is in
the constructor (this class extends java.net.URLConnection):

  public DirContextURLConnection(DirContext context, URL url) {
    super(url);
    if (context == null)
      throw new IllegalArgumentException
          ("Directory context can't be null");
    this.permission = new FilePermission(url.toString(), "read");
    this.context = context;
  }

so the likely culprits are the superclass constructor, url.toString(), or
the FilePermission constructor.  But it's definitely not obvious where the
problem is.  Research continues.    

> -jon
> 

Craig


> java.lang.IllegalStateException: removeAttribute: Session already
> invalidated
>     at 
> org.apache.catalina.session.StandardSession.removeAttribute(StandardSession.
> java:932)
>     at 
> org.apache.catalina.session.StandardSessionFacade.removeAttribute(StandardSe
> ssionFacade.java:201)
>     at 
> org.apache.catalina.session.StandardSessionFacade.removeValue(StandardSessio
> nFacade.java:206)
>     at org.apache.turbine.Turbine.doGet(Turbine.java:453)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:247)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:255)
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:225)
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>     at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
> .java:472)
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>     at 
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
>     at 
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>     at 
> org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
> 875)
>     at 
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:952)
>     at java.lang.Thread.run(Thread.java:496)
> 
> 
> 

Reply via email to