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

Reply via email to