Community
Participate
Working Groups
When using the maven-jetty-plugin and the standard forEach tag, PermGen is leaked on each redeploy due to the jaxax.el.BeanResolver holding strong references to classes loaded from the webapp. On each redeploy of the application the previous classloader remains in memory.
Created attachment 200348 [details] Screenshot of a HProf dump analysed with YourKit Java Profiler I can make the hprof dump available if needed.
Created attachment 200349 [details] sample project To reproduce the problem, simply execute mvn jetty:run in the sample project. Load the first page then reload the application 3-4 times. Take a HProf snapshot and the classloader leak will be visible.
Created attachment 200350 [details] sample project with servlet-api and jsp-api marked as provided Does not make a difference when redeploying, but should be correct.
Wonderful. Looks like the javax.el api is not well designed: http://java.net/jira/browse/GLASSFISH-1649 Will implement a clean-up operation on webapp undeploy.
Also discovered that java.beans.Introspector has a static cache of bean Methods that will cause the WebAppClassLoader to be retained, so fixed that as well.
Great! Is there a nightly I can test?
Nevermind, I was able to build it myself and override the dependencies of the plugin. Thanks once again.