This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 88dd47ba3a1 CAMEL-20917: fix lots of NPEs introduced by the fix
88dd47ba3a1 is described below

commit 88dd47ba3a1c706dce50b02594bec6f4003d1bbf
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed Jun 26 10:00:23 2024 +0200

    CAMEL-20917: fix lots of NPEs introduced by the fix
---
 .../camel/dsl/jbang/core/common/PluginHelper.java  | 46 +++++++++++++++-------
 1 file changed, 31 insertions(+), 15 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
index a4654abdf67..e2588bc27ea 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginHelper.java
@@ -24,6 +24,7 @@ import java.nio.file.Files;
 import java.nio.file.StandardOpenOption;
 import java.util.Optional;
 import java.util.Properties;
+import java.util.function.Supplier;
 
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.catalog.CamelCatalog;
@@ -113,6 +114,10 @@ public final class PluginHelper {
 
     private static MavenGav dependencyAsMavenGav(JsonObject properties) {
         final String dependency = properties.get("dependency").toString();
+        if (dependency == null) {
+            return null;
+        }
+
         return MavenGav.parseGav(dependency);
     }
 
@@ -224,33 +229,44 @@ public final class PluginHelper {
         PluginHelper.savePluginConfig(pluginConfig);
     }
 
+    /**
+     * Extracts information from the GAV model
+     *
+     * @param  gav         An instance of a Maven GAV model
+     * @param  defaultInfo the default if null or not available
+     * @return             the information
+     */
+    private static String doExtractInfo(MavenGav gav, String defaultInfo, 
Supplier<String> supplier) {
+        if (gav != null) {
+            final String info = supplier.get();
+            if (info != null) {
+                return info;
+            }
+        }
+
+        return defaultInfo;
+    }
+
     /**
      * Extracts the group from g:a:v
      *
-     * @param  gav An instance of a Maven GAV model
-     * @return     The group in g:a:v. That is, "g".
+     * @param  gav          An instance of a Maven GAV model
+     * @param  defaultGroup the default if null or not available
+     * @return              The group in g:a:v. That is, "g".
      */
     private static String extractGroup(MavenGav gav, String defaultGroup) {
-        final String group = gav.getGroupId();
-        if (group != null) {
-            return group;
-        }
+        return doExtractInfo(gav, defaultGroup, gav::getGroupId);
 
-        return defaultGroup;
     }
 
     /**
      * Extracts the version from g:a:v
      *
-     * @param  gav An instance of a Maven GAV model
-     * @return     The group in g:a:v. That is, "v".
+     * @param  gav            An instance of a Maven GAV model
+     * @param  defaultVersion the default if null or not available
+     * @return                The group in g:a:v. That is, "v".
      */
     private static String extractVersion(MavenGav gav, String defaultVersion) {
-        final String version = gav.getVersion();
-        if (version != null) {
-            return version;
-        }
-
-        return defaultVersion;
+        return doExtractInfo(gav, defaultVersion, gav::getVersion);
     }
 }

Reply via email to