dev@glassfish.java.net

Re: one more memory leak risk

From: Alexis Moussine-Pouchkine <alexis.mp_at_sun.com>
Date: Fri, 20 Feb 2009 14:34:20 +0100

On Feb 20, 2009, at 14:30, Roman Pokhodzhai wrote:

> Thanks, I'll post it
>
> Though, my previous issues were ignored as well.

I'm sorry to hear this.


> But they are critical. Without fixing them I can't say that
> Glassfish is PRODUCTION server.

I think we can certainly make GlassFish even better and the issue
tracker is really a better place to start with.
Filling out the issue with a reproductible test-case is a big plus.

thanks,
-Alexis


>
>
> On Fri, Feb 20, 2009 at 3:25 PM, Alexis Moussine-Pouchkine <alexis.mp_at_sun.com
> > wrote:
> Hello Roman,
>
> Thanks for your email.
> I think filling an issue is a better way to have someone look into
> this.
>
> thanks,
> -Alexis
>
>
> On Feb 20, 2009, at 10:58, Roman Pokhodzhai wrote:
>
> BTW, It's actual for Glassfish V2 ur1/ur2
>
> On Fri, Feb 20, 2009 at 10:05 AM, Roman Pokhodzhai
> <rpohod_at_gmail.com> wrote:
> Hi , All,
>
> I found defect in code which provoke PermGen memory leak problem.
> org.apache.catalina.core.StandardHostValve.postInvoke(). If response
> is committed the context class loader of the current thread (which
> is set to the application class loader in
> org.apache.catalina.core.StandardHostValve.invoke()) is never unset.
> This causes a thread to hang on to our application class loader even
> after the application is undeployed.
>
>
> public void postInvoke(Request request, Response response)
>
> // START SJSAS 6374691
>
> throws IOException, ServletException
>
> // END SJSAS 6374691
>
> {
>
> // START SJSAS 6374990
>
> if (((ServletResponse) response).isCommitted()) {
>
> return;
>
> }
>
> // END SJSAS 6374990
>
>
> HttpServletRequest hreq = (HttpServletRequest)
> request.getRequest();
>
> // END OF IASRI 4665318
>
> // Error page processing
>
> response.setSuspended(false);
>
>
> Throwable t = (Throwable)
> hreq.getAttribute(Globals.EXCEPTION_ATTR);
>
>
> if (t != null) {
>
> throwable(request, response, t);
>
> } else {
>
> status(request, response);
>
> }
>
>
> Thread.currentThread().setContextClassLoader
>
> (standardHostValveClassLoader);
>
>
> // START SJSAS 6374691
>
> if (errorReportValve != null) {
>
> errorReportValve.postInvoke(request, response);
>
> }
>
> // END SJSAS 6374691
>
> }
>
>
>
>
> Any suggestions?
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>
>