client: Don't crash when outdated plugins are trying to load
This commit is contained in:
@@ -503,6 +503,12 @@ public class ExternalPluginManager
|
|||||||
{
|
{
|
||||||
//noinspection unchecked
|
//noinspection unchecked
|
||||||
plugininst = instantiate(scannedPlugins, (Class<Plugin>) pluginClazz, init, initConfig);
|
plugininst = instantiate(scannedPlugins, (Class<Plugin>) pluginClazz, init, initConfig);
|
||||||
|
|
||||||
|
if (plugininst == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
scannedPlugins.add(plugininst);
|
scannedPlugins.add(plugininst);
|
||||||
}
|
}
|
||||||
catch (PluginInstantiationException e)
|
catch (PluginInstantiationException e)
|
||||||
@@ -654,6 +660,11 @@ public class ExternalPluginManager
|
|||||||
{
|
{
|
||||||
throw new PluginInstantiationException(ex);
|
throw new PluginInstantiationException(ex);
|
||||||
}
|
}
|
||||||
|
catch (NoClassDefFoundError ex)
|
||||||
|
{
|
||||||
|
log.error("Plugin {} is outdated", clazz.getSimpleName());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("Loaded plugin {}", clazz.getSimpleName());
|
log.debug("Loaded plugin {}", clazz.getSimpleName());
|
||||||
return plugin;
|
return plugin;
|
||||||
@@ -712,6 +723,8 @@ public class ExternalPluginManager
|
|||||||
private List<Plugin> loadPlugin(String pluginId)
|
private List<Plugin> loadPlugin(String pluginId)
|
||||||
{
|
{
|
||||||
List<Plugin> scannedPlugins = new ArrayList<>();
|
List<Plugin> scannedPlugins = new ArrayList<>();
|
||||||
|
try
|
||||||
|
{
|
||||||
List<Plugin> extensions = externalPluginManager.getExtensions(Plugin.class, pluginId);
|
List<Plugin> extensions = externalPluginManager.getExtensions(Plugin.class, pluginId);
|
||||||
for (Plugin plugin : extensions)
|
for (Plugin plugin : extensions)
|
||||||
{
|
{
|
||||||
@@ -746,6 +759,11 @@ public class ExternalPluginManager
|
|||||||
|
|
||||||
scannedPlugins.add(plugin);
|
scannedPlugins.add(plugin);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (NoClassDefFoundError ex)
|
||||||
|
{
|
||||||
|
log.error("plugin {} is outdated", pluginId);
|
||||||
|
}
|
||||||
|
|
||||||
return scannedPlugins;
|
return scannedPlugins;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user