Vincent Massol wrote: > On Mar 1, 2010, at 10:48 AM, Caleb James DeLisle wrote: > >> By clearing the XWikiContext in the tearDown of the unit test, I can >> stop the memory leak and stop running the tests in isolation. I am >> proposing we apply this change because the XWikiContext is created >> per test and the worst problem which can be created is tests >> erroneously passing which I don't think is very likely from a change >> like this. > > +1 for the main reason that this improves build times. The second reason is > that it makes memory leaks more visible which gives us a better chance to > find them (although this won't replace performance tests running over a few > days for ex). > > However please add a comment just above the getContext().clear() to explain > why this is needed. BTW why is it needed? :)
I will do that. The reason it's needed is because (it seems) the context is referenced by a static variable which isn't cleared and rather than pick through the tests looking for where the reference was (and hoping no test ever does it again) I opted to clear the context and let the tests use the context as they wish. This is my understanding of the situation. > > Thanks > -Vincent > >> Jira issue: http://jira.xwiki.org/jira/browse/XWIKI-4953 >> Patch: >> http://jira.xwiki.org/jira/secure/attachment/16788/XWIKI-4496-patchTestMemoryLeak.patch >> >> Patch content: >> >> Index: core/xwiki-core/pom.xml >> =================================================================== >> --- core/xwiki-core/pom.xml (revision 27357) >> +++ core/xwiki-core/pom.xml (working copy) >> @@ -823,10 +823,6 @@ >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-surefire-plugin</artifactId> >> - <configuration> >> - <!-- Prevent Out Of Memory errors resulting from tests >> that do no free up the memory correctly --> >> - <forkMode>pertest</forkMode> >> - </configuration> >> </plugin> >> <!-- Publish a Core Test JAR --> >> <plugin> >> Index: >> core/xwiki-core/src/test/java/com/xpn/xwiki/test/AbstractBridgedXWikiComponentTestCase.java >> =================================================================== >> --- >> core/xwiki-core/src/test/java/com/xpn/xwiki/test/AbstractBridgedXWikiComponentTestCase.java >> (revision 27357) >> +++ >> core/xwiki-core/src/test/java/com/xpn/xwiki/test/AbstractBridgedXWikiComponentTestCase.java >> (working copy) >> @@ -80,6 +80,7 @@ >> protected void tearDown() throws Exception >> { >> Utils.setComponentManager(null); >> + getContext().clear(); >> super.tearDown(); >> } >> >> >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

