]> source.dussan.org Git - pf4j.git/commitdiff
Fix Sonar warning plugin_context 512/head
authorDecebal Suiu <decebal.suiu@gmail.com>
Sun, 15 Jan 2023 22:17:33 +0000 (00:17 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Sun, 15 Jan 2023 22:17:33 +0000 (00:17 +0200)
pf4j/src/main/java/org/pf4j/DefaultPluginFactory.java

index db86006b137f08d49d27130227a55b5bfeb59d79..310c7919bc949c75b9346b0a98c9205eebc5b174 100644 (file)
@@ -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);
         }