aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pf4j/src/main/java/org/pf4j/AbstractPluginManager.java2
-rw-r--r--pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java13
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")