You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Mindbridge <mi...@yahoo.com> on 2003/03/17 13:37:49 UTC
Re: Memory leak in javassist.ClassPool when disable-caching set
Hi Jim,
This is a good catch, thank you. Please add a bug.
I am experimenting and testing solutions at the moment, I hope I will check
in one soon.
Best regards,
-mb
----- Original Message -----
From: "Jim Frederic" <ji...@isogen.com>
To: "Tapestry users" <ta...@jakarta.apache.org>
Sent: Friday, September 19, 2003 12:19 AM
Subject: Memory leak in javassist.ClassPool when disable-caching set
> version: Tapestry-3.0-beta-2
>
> When org.apache.tapestry.disable-caching is set to true (as a JVM system
> property), the HashMap of enhanced classes is cleared at the end of each
> request cycle, as it should be. However, the
> org.apache.tapestry.enhance.javassist.EnhancedClassFactory holds a
> reference to a javassist.ClassPool which keeps growing.
>
> The problem seems to be that with caching disabled, tapestry must
> re-enhance a bunch of components on every request. The name of the
> enhanced class always ends in $Enhance_n, where n is an incrementing
> number. That number is the _uid static int property on
> org.apache.tapestry.enhance.ComponentClassFactory.
>
> Suppose I have a tapestry page called myapp.Home. With caching disabled
> it is enhanced on each page refresh. The first time the enhanced class
> name is myapp.Home$Enhance_0. The second time the enhanced class name
> is myapp.Home$Enhance_4 (assuming three other enhanced components on the
> page). Thrid time the page is enhanced as myapp.Home$Enhance_8. The
> problem is that the javassist.ClassPool holds a Hashtable in which these
> class names are keys. Since the "same" class has a different name each
> time, the ClassPool grows rapidly. This problem first showed up as
> runaway memory growth when running automated UI tests against our
> tapestry app.
>
> The proper solution seems to me to be to clear the ClassPool at the same
> time the other tapestry pools are cleared.
>
> I searched the mail list for this to no avail. Is this a known issue?
>
> -Jim
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org