On Monday 22 December 2008 10:17, [email protected] wrote: > Author: j16sdiz > Date: 2008-12-22 10:17:00 +0000 (Mon, 22 Dec 2008) > New Revision: 24728 > > Modified: > trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java > trunk/freenet/src/freenet/support/JarClassLoader.java > Log: > force close the jar file when plugin unload
Is it safe to close it when the only reason we want to close it is it's not
unloading properly?
>
> Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
> ===================================================================
> --- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
2008-12-22 09:52:06 UTC (rev 24727)
> +++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
2008-12-22 10:17:00 UTC (rev 24728)
> @@ -4,7 +4,9 @@
> import java.util.HashSet;
>
> import freenet.l10n.L10n;
> +import freenet.support.JarClassLoader;
> import freenet.support.Logger;
> +import freenet.support.io.Closer;
>
> public class PluginInfoWrapper {
>
> @@ -130,6 +132,13 @@
> }
> }
> }
> +
> + // Close the jar file, so we may delete / reload it
> + ClassLoader cl = plug.getClass().getClassLoader();
> + if (cl instanceof JarClassLoader) {
> + Closer.close((JarClassLoader) cl);
> + }
> +
> // always remove plugin
> manager.removePlugin(this);
> }
>
> Modified: trunk/freenet/src/freenet/support/JarClassLoader.java
> ===================================================================
> --- trunk/freenet/src/freenet/support/JarClassLoader.java 2008-12-22
09:52:06 UTC (rev 24727)
> +++ trunk/freenet/src/freenet/support/JarClassLoader.java 2008-12-22
10:17:00 UTC (rev 24728)
> @@ -19,6 +19,7 @@
> package freenet.support;
>
> import java.io.ByteArrayOutputStream;
> +import java.io.Closeable;
> import java.io.File;
> import java.io.FileOutputStream;
> import java.io.IOException;
> @@ -38,7 +39,7 @@
> * @author <a href="mailto:[email protected]">David Roden</a>
> * @version $Id$
> */
> -public class JarClassLoader extends ClassLoader {
> +public class JarClassLoader extends ClassLoader implements Closeable {
>
> /** The temporary jar file. */
> private JarFile tempJarFile;
> @@ -166,4 +167,7 @@
> return name.replace('.', '/') + ".class";
> }
>
> + public void close() throws IOException {
> + tempJarFile.close();
> + }
> }
pgpGn35IdEROG.pgp
Description: PGP signature
_______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
