[ 
https://issues.apache.org/jira/browse/DERBY-2905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537404
 ] 

Daniel John Debrunner commented on DERBY-2905:
----------------------------------------------

I think the patch results in code that is brittle, it adds more state about the 
boot state of the class when it already has a couple of fields trying to manage 
state.

In addition its seems the registering of Derby's embedded driver has become 
overly complex, some due in part to previous changes, also I think the patch 
means that the autoloaded driver gets re-used on a re-boot which doesn't seem 
the right life-cycle for java.sql.Driver.

I did try thinking about an alternate approach, more in-line with the original 
code (pre-JDBC 4 autoload) changes where a driver registers itself only, but I 
then got distracted by other stuff.

> 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.0.0
>            Reporter: Daniel John Debrunner
>            Assignee: Ramin Moazeni
>         Attachments: DERBY-2905v0.diff, DERBY-2905v0.stat, DERBY-2905v1.diff, 
> DERBY-2905v1.stat, DERBY-2905v3.diff, DERBY-2905v3.stat, Main.java, 
> Mainv1.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