From 5b7705d86b6386786f8232ae8a3ff6273914a69a Mon Sep 17 00:00:00 2001 From: Decebal Suiu Date: Mon, 16 Jan 2023 00:17:33 +0200 Subject: [PATCH] Fix Sonar warning --- .../java/org/pf4j/DefaultPluginFactory.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pf4j/src/main/java/org/pf4j/DefaultPluginFactory.java b/pf4j/src/main/java/org/pf4j/DefaultPluginFactory.java index db86006..310c791 100644 --- a/pf4j/src/main/java/org/pf4j/DefaultPluginFactory.java +++ b/pf4j/src/main/java/org/pf4j/DefaultPluginFactory.java @@ -59,18 +59,23 @@ public class DefaultPluginFactory implements PluginFactory { return createInstance(pluginClass, pluginWrapper); } - /** - * Creates a plugin instance. If an error occurs than that error is logged and the method returns {@code null}. - */ protected Plugin createInstance(Class pluginClass, PluginWrapper pluginWrapper) { try { - try { - Constructor constructor = pluginClass.getConstructor(PluginWrapper.class); - return (Plugin) constructor.newInstance(pluginWrapper); - } catch (NoSuchMethodException e) { - Constructor constructor = pluginClass.getConstructor(); - return (Plugin) constructor.newInstance(); - } + Constructor constructor = pluginClass.getConstructor(PluginWrapper.class); + return (Plugin) constructor.newInstance(pluginWrapper); + } catch (NoSuchMethodException e) { + return createUsingNoParametersConstructor(pluginClass); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + return null; + } + + protected Plugin createUsingNoParametersConstructor(Class pluginClass) { + try { + Constructor constructor = pluginClass.getConstructor(); + return (Plugin) constructor.newInstance(); } catch (Exception e) { log.error(e.getMessage(), e); } -- 2.39.5