diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java index df2f854a76..d1690212e0 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java @@ -1,7 +1,6 @@ package net.i2p.router.web; import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -88,6 +87,15 @@ public class ConfigClientsHandler extends FormHandler { } else { try { PluginStarter.stopPlugin(_context, app); + } catch (ClassNotFoundException cnfe) { + // don't complain here. Some plugins need to be ran to be deleted. + // I tried to check to see if the plugin was ran elsewhere, + // and it sait it was when it was not. -- Sponge + } catch (Throwable e) { + addFormError(_("Error stopping plugin {0}", app) + ": " + e); + _log.error("Error stopping plugin " + app, e); + } + try { PluginStarter.deletePlugin(_context, app); addFormNotice(_("Deleted plugin {0}", app)); } catch (Throwable e) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java index f225f5fe46..59a960bb52 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java @@ -122,7 +122,7 @@ public class PluginUpdateHandler extends UpdateHandler { protected void update() { _updated = false; if(_xpi2pURL.startsWith("file://")) { - updateStatus("" + _("Attempting to copy plugin from {0}", _xpi2pURL) + ""); + updateStatus("" + _("Attempting to install from file {0}", _xpi2pURL) + ""); // strip off "file://" String xpi2pfile = _xpi2pURL.substring(7); if(xpi2pfile.length() == 0) { // This is actually what String.isEmpty() does, so it should be safe. @@ -133,7 +133,7 @@ public class PluginUpdateHandler extends UpdateHandler { if(FileUtil.copy((new File(xpi2pfile)).getAbsolutePath(), _updateFile, true, false)) { transferComplete(alreadyTransferred, alreadyTransferred, 0L, _xpi2pURL, _updateFile, false); } else { - statusDone("" + _("Failed to copy file {0}", _xpi2pURL) + ""); + statusDone("" + _("Failed to install from file {0}, copy failed.", _xpi2pURL) + ""); } } } else { diff --git a/history.txt b/history.txt index 658d0add4a..3e2bcbca76 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2012-03-19 sponge + * Plugins: less confusing message, fix CNFE by catch and ignore on delete. + 2012-03-17 zzz * BuildHandler: Implement restart and shutdown to stop the thread * Jetty: Don't extract wars diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 8ab24107c9..80cfb9c849 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 17; + public final static long BUILD = 18; /** for example "-test" */ public final static String EXTRA = "";