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