Browse Source

Resolve #309

tags/release-3.0.0
Decebal Suiu 5 years ago
parent
commit
3199b5f043
1 changed files with 7 additions and 1 deletions
  1. 7
    1
      pf4j/src/main/java/org/pf4j/AbstractPluginManager.java

+ 7
- 1
pf4j/src/main/java/org/pf4j/AbstractPluginManager.java View File

@@ -287,19 +287,25 @@ public abstract class AbstractPluginManager implements PluginManager {
checkPluginId(pluginId);

PluginWrapper pluginWrapper = getPlugin(pluginId);
// stop the plugin if it's started
PluginState pluginState = stopPlugin(pluginId);
if (PluginState.STARTED == pluginState) {
log.error("Failed to stop plugin '{}' on delete", pluginId);
return false;
}

// get an instance of plugin before the plugin is unloaded
// for reason see https://github.com/pf4j/pf4j/issues/309
Plugin plugin = pluginWrapper.getPlugin();

if (!unloadPlugin(pluginId)) {
log.error("Failed to unload plugin '{}' on delete", pluginId);
return false;
}

// notify the plugin as it's deleted
try {
pluginWrapper.getPlugin().delete();
plugin.delete();
} catch (PluginException e) {
log.error(e.getMessage(), e);
return false;

Loading…
Cancel
Save