[ 
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.

Reply via email to