[
https://issues.apache.org/jira/browse/DERBY-2905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986665#action_12986665
]
Kathey Marsden commented on DERBY-2905:
---------------------------------------
I looked the DERBY-2905-2.diff patch. I am not so clear on all the
autoloading implications, so it would be good if someone else could take a look
too. Here are my comments.
In EmbeddedDataSource findDriver() I think we should just Call
DriverManager.getDriver(url) once and save the value. to improve performance
and make the code clearer. I was sort of surprised that finding the driver is
done for every connection rather than on instantiating the DataSource, but that
was a preexisting situation.
In AutoloadedDriver I wonder if we can avoid having the new
activeautoloadeddriver boolean and just use the _autoloadedDriver and check if
it was null.
In unregisterDriverManager, I wonder if _autoLoadedDriver should be set to null
and also if the driverModule shouild be deregistered even if the autoloaded
driver is registered.
In the test we should not import ClientDataSource directly and instead use
JDBCDataSource.getDataSource() and also should not assume the driver is
Driver40 as it might be Driver30 etc.
Again I am pretty fuzzy on this autoloading stuff so it would be good if
someone else could look.
> Shutting down embedded Derby does not remove all code, the AutoloadDriver is
> left registered in the DriverManager.
> ------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-2905
> URL: https://issues.apache.org/jira/browse/DERBY-2905
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.2.2.0, 10.3.1.4, 10.4.1.3
> Reporter: Daniel John Debrunner
> Assignee: Lily Wei
> Attachments: DERBY-2905-2.diff, DERBY-2905_1.diff, DERBY-2905v0.diff,
> DERBY-2905v0.stat, DERBY-2905v1.diff, DERBY-2905v1.stat, DERBY-2905v3.diff,
> DERBY-2905v3.stat, Main.java, Mainv1.java, Repro2905.java
>
>
> After a shutdown of the embedded driver the AutoloadDriver is not
> unregistered from DriverManager. However it does not support any future
> loading of connections so it has no value in remaining registered. Since the
> DriverManager class will remain forever, this means the Derby code will
> remain forever in the JVM, even if Derby was loaded by a separate class
> loader.
> Regression from 10.1 since before the AutoloadedDriver the internal driver
> did unregister itself from the DriverManager on a shutdown.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.