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
|
||||
plugininst = instantiate(scannedPlugins, (Class<Plugin>) pluginClazz, init, initConfig);
|
||||
|
||||
if (plugininst == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
scannedPlugins.add(plugininst);
|
||||
}
|
||||
catch (PluginInstantiationException e)
|
||||
@@ -654,6 +660,11 @@ public class ExternalPluginManager
|
||||
{
|
||||
throw new PluginInstantiationException(ex);
|
||||
}
|
||||
catch (NoClassDefFoundError ex)
|
||||
{
|
||||
log.error("Plugin {} is outdated", clazz.getSimpleName());
|
||||
return null;
|
||||
}
|
||||
|
||||
log.debug("Loaded plugin {}", clazz.getSimpleName());
|
||||
return plugin;
|
||||
@@ -712,6 +723,8 @@ public class ExternalPluginManager
|
||||
private List<Plugin> loadPlugin(String pluginId)
|
||||
{
|
||||
List<Plugin> scannedPlugins = new ArrayList<>();
|
||||
try
|
||||
{
|
||||
List<Plugin> extensions = externalPluginManager.getExtensions(Plugin.class, pluginId);
|
||||
for (Plugin plugin : extensions)
|
||||
{
|
||||
@@ -746,6 +759,11 @@ public class ExternalPluginManager
|
||||
|
||||
scannedPlugins.add(plugin);
|
||||
}
|
||||
}
|
||||
catch (NoClassDefFoundError ex)
|
||||
{
|
||||
log.error("plugin {} is outdated", pluginId);
|
||||
}
|
||||
|
||||
return scannedPlugins;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user