On Mar 1, 2010, at 11:18 AM, Caleb James DeLisle wrote: > > > 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.
Then the question is why do we reference the context statically? Can't we remove that? Thanks -Vincent > >> >> 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

