[
https://issues.apache.org/jira/browse/DERBY-2162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen reassigned DERBY-2162:
-----------------------------------------
Assignee: Knut Anders Hatlen
Java 7 added a close() method to URLClassLoader for releasing the jar files.
See [https://bugs.openjdk.java.net/browse/JDK-4167874].
If I enable testDatabaseInClasspath() and add a call to URLClassLoader.close()
when it resets the context class loader, the test passes for me with JDK 7u51
on Windows. It fails to delete dclt.jar if I don't add the call to close().
I'll try to get the test enabled permanently on Java 7 and higher using the new
method.
> Shutting down a database loaded from a jar file via the classpath and
> URLClassLoader leaves an open file reference to the jar file containing the
> database.
> ------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-2162
> URL: https://issues.apache.org/jira/browse/DERBY-2162
> Project: Derby
> Issue Type: Bug
> Components: Services
> Affects Versions: 10.2.1.6, 10.3.1.4
> Reporter: Daniel John Debrunner
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Labels: derby_triage10_5_2
>
> A bug in java.net.URLClassLoader causes the underlying jar file to be held
> open once a resource has been fetched and opened.
> Loading a class or just accessing the URL for the resource does not keep the
> jar open. Reported the bug to Sun, it is similar to the existing bug Java bug
> 4950148 but in this case no amount of garbage collection will close the jar.
> Derby exposes this as all containers/files are opened using as resources when
> loading the database from the classpath.
> On windows this is seen as the inability to delete the jar file, seen by the
> fixture testDatabaseInClasspath in DatabaseClassLoadingTest.
> Similar to DERBY-2083 but due to a different cause.
--
This message was sent by Atlassian JIRA
(v6.2#6252)