db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5705) Authorization decorators don't null out connections when done
Date Tue, 24 Apr 2012 09:25:34 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Knut Anders Hatlen updated DERBY-5705:

    Attachment: d5705-1a.diff

Attaching a patch that makes the following changes:

- Use the (already existing) method DatabasePropertyTestSetup.getNoTeardownInstance() instead
of having many DatabasePropertyTestSetup classes that override tearDown() with an empty method.
(To make it possible to have the new logic that releases the resources at just one location.)

- Make the tearDown() method in the decorator returned by DatabasePropertyTestSetup.getNoTeardownInstance()
close and null out the default connection.

These changes preserve the main purpose of these decorators, which is that they shouldn't
reset the properties in tearDown(), and at the same time allows the connection and its resources
to be garbage collected once they're no longer used.

suites.All ran successfully with the patch.

I also verified that the patch reduced the number of BasicDatabase instances still held on
the heap after running RolesTest and DboPowersTest. The numbers were reduced from 8 to 4,
and from 50 to 36, respectively. (I had expected that the numbers would go down to one or
two (wombat + dbsqlauth), so there may still be some other related bugs.)
> Authorization decorators don't null out connections when done
> -------------------------------------------------------------
>                 Key: DERBY-5705
>                 URL: https://issues.apache.org/jira/browse/DERBY-5705
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions:
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: d5705-1a.diff
> Some decorators used to test authorization don't close and null out references to Connection
objects when they have completed. Since these tests often create/boot single-use databases,
and the Connection objects have references to the database instance and, directly or indirectly,
many of its modules, this prevents much garbage from being removed from the heap after the
tests have completed and shut down their single-use databases. We should close the default
connection and clear the reference to it when tearing down these decorators, so the space
is released for subsequent tests to use.
> This problem affects decorators returned by the following methods:
> DatabasePropertyTestSetup.builtinAuthenticationNoTeardown()
> TestConfiguration.sqlAuthorizationDecorator()
> TestConfiguration.sqlAuthorizationDecoratorSingleUse()
> These methods return modified versions of DatabasePropertyTestSetup where the tearDown()
method is a no-op.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message