diff options
-rw-r--r-- | pf4j/src/main/java/org/pf4j/AbstractPluginManager.java | 2 | ||||
-rw-r--r-- | pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java index 78c261c..559fc81 100644 --- a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java +++ b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java @@ -537,7 +537,7 @@ public abstract class AbstractPluginManager implements PluginManager { log.debug("Already disabled plugin '{}'", getPluginLabel(pluginDescriptor)); return true; } else if (PluginState.STARTED == pluginState) { - if (PluginState.STOPPED == stopPlugin(pluginId)) { + if (PluginState.STOPPED != stopPlugin(pluginId)) { log.error("Failed to stop plugin '{}' on disable", getPluginLabel(pluginDescriptor)); return false; } diff --git a/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java b/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java index d95a2d0..bc23630 100644 --- a/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java +++ b/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java @@ -167,6 +167,19 @@ public class DefaultPluginManagerTest { } @Test + void shouldDisablePluginAfterStarting() throws IOException { + new PluginZip.Builder(pluginsPath.resolve("my-plugin-1.2.3.zip"), "myPlugin") + .pluginVersion("1.2.3") + .build(); + + pluginManager.loadPlugins(); + pluginManager.startPlugins(); + assertEquals(PluginState.STARTED, pluginManager.getPlugin("myPlugin").getPluginState()); + pluginManager.disablePlugin("myPlugin"); + assertEquals(PluginState.DISABLED, pluginManager.getPlugin("myPlugin").getPluginState()); + } + + @Test public void deleteZipPlugin() throws Exception { PluginZip pluginZip = new PluginZip.Builder(pluginsPath.resolve("my-plugin-1.2.3.zip"), "myPlugin") .pluginVersion("1.2.3") |