[
https://issues.apache.org/jira/browse/DERBY-2905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lily Wei updated DERBY-2905:
----------------------------
Attachment: DERBY-2905_part2_2_3.diff
Thanks Knut. You are right, the test does behave differently when the driver
has been loaded and shutdown has been issued before the test starts. When we
first start embedded engine, AutoloadedDriver40 is created by Derby and loaded
in DriverManager. With the current code, reloading engine after shutdown via
for.ClassName(…).newInstance will result AutoloadedDriver loaded in
DriverManager. Jdbc4.Driver40Test and jdbcapi.DriverTest both assume
AutoloadedDriver40 is in DriverManager when JDBC.vmSupportsJDBC4() is true. I
am attaching DERBY-2905_part2_2_3.diff patch. This patch assumes the current
AutoloadedDriver.registerDriverModule() behavior is correct. If this is not a
correct assumption, please feel free to change the code. I did run jdbc4._Suite
and jdbcapi._Suite and they are passing on my machine. Please review the code.
If it is okay with everybody, I can check-in when I get home. I am currently in
HongKong airport. Happy Chinese New Year.
> 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-2905_3.diff,
> DERBY-2905_part2_1.diff, DERBY-2905_part2_2.diff, DERBY-2905_part2_2_1.diff,
> DERBY-2905_part2_2_2.diff, DERBY-2905_part2_2_3.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, ww.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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira