On Mon, Mar 1, 2010 at 11:17, Vincent Massol <[email protected]> wrote:
>
> 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?

Yes this seems very wrong, the only place i can see is
Utils#componentManager but this is cleaned in tearDown() already.

>
> 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
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to