jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julian Reschke (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-752) Test cases leak sessions
Date Tue, 20 Feb 2007 10:12:05 GMT
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.


Mime
View raw message