diff --git a/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java b/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java index 936c2ab6a..6409be4a7 100644 --- a/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java +++ b/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java @@ -223,10 +223,7 @@ public class HaloPluginManager extends DefaultPluginManager private PluginState doStartPlugin(String pluginId) { checkPluginId(pluginId); - // refresh plugin to ensure cache object of PluginWrapper.plugin is up-to-date - // see gh-4016 to know why we need this - // TODO if has a better way to do this? - PluginWrapper pluginWrapper = refreshPluginWrapper(pluginId); + PluginWrapper pluginWrapper = getPlugin(pluginId); checkExtensionFinderReady(pluginWrapper); @@ -352,37 +349,6 @@ public class HaloPluginManager extends DefaultPluginManager } } - /** - *

Refresh plugin wrapper by plugin name.

- * - *

It will be create a new plugin wrapper and replace old plugin wrapper to clean - * {@link PluginWrapper#getPlugin()} cache object.

- * - * @param pluginName plugin name - * @return refreshed plugin wrapper instance, plugin cache object will be null - * @throws IllegalArgumentException if plugin not found - */ - protected synchronized PluginWrapper refreshPluginWrapper(String pluginName) { - checkPluginId(pluginName); - // get old plugin wrapper - PluginWrapper pluginWrapper = getPlugin(pluginName); - // create new plugin wrapper to replace old plugin wrapper - PluginWrapper refreshed = copyPluginWrapper(pluginWrapper); - this.plugins.put(pluginName, refreshed); - return refreshed; - } - - @NonNull - PluginWrapper copyPluginWrapper(@NonNull PluginWrapper pluginWrapper) { - PluginWrapper refreshed = - createPluginWrapper(pluginWrapper.getDescriptor(), pluginWrapper.getPluginPath(), - pluginWrapper.getPluginClassLoader()); - refreshed.setPluginFactory(getPluginFactory()); - refreshed.setPluginState(pluginWrapper.getPluginState()); - refreshed.setFailedException(pluginWrapper.getFailedException()); - return refreshed; - } - @Override public void destroy() throws Exception { stopPlugins();