Index: core/bootstrap/src/org/netbeans/Module.java =================================================================== RCS file: /cvs/core/bootstrap/src/org/netbeans/Module.java,v retrieving revision 1.1 diff -u -r1.1 Module.java --- core/bootstrap/src/org/netbeans/Module.java 4 Jun 2005 05:10:50 -0000 1.1 +++ core/bootstrap/src/org/netbeans/Module.java 19 Jul 2005 16:05:30 -0000 @@ -1050,6 +1050,17 @@ if (classloader instanceof ProxyClassLoader) { ((ProxyClassLoader)classloader).destroy(); } + // #21114: try to release all JAR locks + Iterator it = oldClassLoaders.iterator(); + while (it.hasNext()) { + OneModuleClassLoader l = (OneModuleClassLoader)it.next(); + try { + l.releaseLocks(); + } catch (IllegalStateException ise) { + // XXX: released locks multiple on same module + } + } + moduleJARs.remove(jar); classloader = null; Util.err.log("classLoaderDown on " + this + ": releaseCount=" + releaseCount + " released=" + released); released = false; @@ -1071,13 +1082,14 @@ /** Notify the module that it is being deleted. */ void destroy() { - // #21114: try to release all JAR locks - Iterator it = oldClassLoaders.iterator(); - while (it.hasNext()) { - OneModuleClassLoader l = (OneModuleClassLoader)it.next(); - l.releaseLocks(); - } - moduleJARs.remove(jar); + assert ! isEnabled () : "Cannot destroy enaled module " + this; +// // #21114: try to release all JAR locks +// Iterator it = oldClassLoaders.iterator(); +// while (it.hasNext()) { +// OneModuleClassLoader l = (OneModuleClassLoader)it.next(); +// l.releaseLocks(); +// } +// moduleJARs.remove(jar); } /** Get the JAR manifest.