Memory leak in DispatcherHelper
-------------------------------
Key: STS-279
URL: http://mc4j.org/jira/browse/STS-279
Project: Stripes
Issue Type: Bug
Reporter: Jay Paulsen
Assigned To: Tim Fennell
The private static Map customValidations in DispatcherHelper is never cleared.
Since the key to the map entries are Class objects, when a stripes web
application is reloaded, this causes the web application classloader to be
pinned in memory and it and all the classes it loaded are never garbage
collected.
I found this with version 1.4 of stripes and tomcat 5.5.17. The
DispatcherHelper code in 1.4.1 looks the same so I imagine the same problem
will happen with this version as well.
As a temporary work around, I placed the following code in the contextDestroyed
method of a ContextListener class for my web application:
Field f = DispatcherHelper.class.getDeclaredField("customValidations");
f.setAccessible(true);
Map<Class, Method[]> customValidations = (Map<Class, Method[]>)
f.get(DispatcherHelper.class);
customValidations.clear();
It would be nice if stripes exposed a clear method for this field on the
DispatcherHelper class so a web app doesn't have to resort this hacked
reflection work-around, or better yet, if Stripes had a way to clean it up
itself.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://mc4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development