Test cases leak sessions
------------------------

                 Key: JCR-752
                 URL: https://issues.apache.org/jira/browse/JCR-752
             Project: Jackrabbit
          Issue Type: Bug
          Components: test
            Reporter: Julian Reschke
            Priority: Minor


Many of the JCR test cases currently leak Sessions when an exception occurs 
during the setUp() method. For some repository implementations, lots of 
non-closed Session objects can cause subsequent test cases not to run at all 
(because of no additional Sessions being available).

For instance, in org.apache.jackrabbit.test.api.SetValueBinaryTest:

    protected void setUp() throws Exception {
        super.setUp();

        // initialize some binary value
        data = createRandomString(10).getBytes();
        value = superuser.getValueFactory().createValue(new 
ByteArrayInputStream(data));

        // create a new node under the testRootNode
        node = testRootNode.addNode(nodeName1, testNodeType);

        // create a new single-value property and save it
        property1 = node.setProperty(propertyName1, 
superuser.getValueFactory().createValue(new ByteArrayInputStream(new byte[0])));
        superuser.save();
    }

This code should be enhanced like this:

    protected void setUp() throws Exception {
        super.setUp();
        try {
                // initialize some binary value
                data = createRandomString(10).getBytes();
                value = superuser.getValueFactory().createValue(new 
ByteArrayInputStream(data));

                // create a new node under the testRootNode
                node = testRootNode.addNode(nodeName1, testNodeType);

                // create a new single-value property and save it
                property1 = node.setProperty(propertyName1, 
superuser.getValueFactory().createValue(new ByteArrayInputStream(new byte[0])));
                superuser.save();
        }
        catch (RepositoryException ex) {
                super.cleanUp();
                throw ex;
        }
}

This applies to many other test cases as well, some of which also allocate an 
additional Session which would need to be logged out as well.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to