[
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: 10.9.0.0
> 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