The following two blog entries are very useful in understanding and debugging this issue: http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded
We think we've fixed the instances in Wicket where this is a problem, but there is an outstanding open bug for that because I've yet to verify it: https://issues.apache.org/jira/browse/WICKET-625 If you do come across a concrete reference chain in your debugging travels that involves Wicket then please update the JIRA issue and we'll fix it for you. Regards, Al On Tue, Apr 1, 2008 at 4:54 PM, Martijn Dashorst <[EMAIL PROTECTED]> wrote: > There is a solution: not to deploy your application more than 2-3 times... > > Martijn > > On 4/1/08, Piller Sébastien <[EMAIL PROTECTED]> wrote: > > > > Thanks... but it's impossible to find a clear solution to this problem > over > > the internet... Each things I try fails miserably... Nobody can provide > > something that works... Setting the > > "hibernate.bytecode.use_reflection_optimizer" property has > > no effect. And others solutions are bad: monitor the application and > > manually restitue the memory of useless objects, etc... > > > > Am I sentenced to restart Tomcat each time I redeploy the app? I am > under a > > shared server, I can't restart it myself! What do you do, you, when you > are > > deploying your applications? Do you phone to your provider to ask him to > > restart the server himself? Or did you find a workaround? > > > > It's so annoying... That's a problem everybody has when using tomcat, > but > > nobody can give a solution... > > > > > > > > Martijn Dashorst a écrit : > > http://www.google.com/search?q=permgen+outofmemory+tomcat > > > > On 4/1/08, Piller Sébastien <[EMAIL PROTECTED]> wrote: > > > > > > Hello everybody, > > > > I found some problem with my app, when I deploy it/undeploy it several > > times under Tomcat (5.5) (Unix and Windows). I copied my app war file in > the > > webapp dir, and when it has been fully deployed, I surf on some pages. > After > > that, I delete that war, wait for the end of undeployment, and did it > again. > > The memory used by tomcat grows on each cycle. I did it about ten times, > and > > after that I got the message below: > > > > > > java.lang.OutOfMemoryError: PermGen space > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(Unknown Source) > > at java.security.SecureClassLoader.defineClass(Unknown > > Source) > > at > > org.apache.catalina.loader.WebappClassLoader.findClassInternal( > WebappClassLoader.java:1853) > > at > > org.apache.catalina.loader.WebappClassLoader.findClass( > WebappClassLoader.java:875) > > at > > org.apache.catalina.loader.WebappClassLoader.loadClass( > WebappClassLoader.java:1330) > > at > > org.apache.catalina.loader.WebappClassLoader.loadClass( > WebappClassLoader.java:1209) > > at java.lang.ClassLoader.loadClassInternal(Unknown > > Source) > > at java.lang.Class.getDeclaredMethods0(Native Method) > > at java.lang.Class.privateGetDeclaredMethods(Unknown > > Source) > > at java.lang.Class.getMethod0(Unknown Source) > > at java.lang.Class.getMethod0(Unknown Source) > > at java.lang.Class.getMethod0(Unknown Source) > > at java.lang.Class.getMethod0(Unknown Source) > > at java.lang.Class.getMethod0(Unknown Source) > > at java.lang.Class.getMethod(Unknown Source) > > at > > org.apache.wicket.util.lang.PropertyResolver.findGetter( > PropertyResolver.java:506) > > at > > org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter( > PropertyResolver.java:331) > > at > > org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter( > PropertyResolver.java:275) > > at > > org.apache.wicket.util.lang.PropertyResolver.getValue( > PropertyResolver.java:84) > > at > > org.apache.wicket.model.AbstractPropertyModel.getObject( > AbstractPropertyModel.java:113) > > at > > org.apache.wicket.Component.getModelObject(Component.java:1539) > > at > > > org.apache.wicket.markup.html.form.AbstractSingleSelectChoice.getModelValue > (AbstractSingleSelectChoice.java:140) > > at > > org.apache.wicket.markup.html.form.FormComponent.getValue( > FormComponent.java:744) > > at > > org.apache.wicket.markup.html.form.AbstractChoice.onComponentTagBody( > AbstractChoice.java:344) > > at > > org.apache.wicket.Component.renderComponent(Component.java:2459) > > at > > org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354) > > at > > org.apache.wicket.Component.render(Component.java:2296) > > at > > org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240) > > at > > org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1370) > > at org.apache.wicket.Page.onRender(Page.java:1446) > > at > > org.apache.wicket.Component.render(Component.java:2296) > > > > As you can see, it talks about Wicket, but I don't know if it is really > > related to it. I tried on Tomcat5.5/Linux too, and the message is not > > exactly the same, but it stills speak of PermGen. > > > > PS: I use Hibernate 3.2.6ga and several other things in my app, like > > Jasper, JFreeChart and C3P0 . > > > > Does anybody know how to avoid this? Or is the Tomcat list a better > place > > for this? > > > > Thanks! > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- > Buy Wicket in Action: http://manning.com/dashorst > Apache Wicket 1.3.2 is released > Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >