You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/10/17 09:47:18 UTC

[camel] 02/04: camel-rest - Fix NPE with better exception if component not on classpath

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

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

commit b68b1fff46684352192fb69a86cea4d2965fe31e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Oct 17 11:40:23 2022 +0200

    camel-rest - Fix NPE with better exception if component not on classpath
---
 .../apache/camel/support/RestProducerFactoryHelper.java   | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
index 2910e835a5c..d8cc9cf4015 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/RestProducerFactoryHelper.java
@@ -42,21 +42,19 @@ public final class RestProducerFactoryHelper {
 
     public static void setupComponentFor(
             final String url, final CamelContext camelContext,
-            final Map<String, Object> componentProperties)
-            throws Exception {
-        final String scheme = StringHelper.before(url, ":");
+            final Map<String, Object> componentProperties) {
 
+        final String scheme = StringHelper.before(url, ":");
         setupComponent(scheme, camelContext, componentProperties);
     }
 
     public static Component setupComponent(
             final String componentName, final CamelContext camelContext,
-            final Map<String, Object> componentProperties)
-            throws Exception {
+            final Map<String, Object> componentProperties) {
+
         if (componentName == null) {
             return null;
         }
-
         if (componentProperties == null || componentProperties.isEmpty()) {
             return camelContext.getComponent(componentName);
         }
@@ -76,6 +74,11 @@ public final class RestProducerFactoryHelper {
 
         // component was not added to the context we can configure it
         final Component newlyCreated = camelContext.getComponent(componentName, true, false);
+        if (newlyCreated == null) {
+            throw new IllegalArgumentException(
+                    "Cannot find component with name " + componentName
+                            + ". Make sure you have the component on the classpath");
+        }
         PropertyBindingSupport.build().withRemoveParameters(false).withIgnoreCase(true)
                 .withConfigurer(newlyCreated.getComponentPropertyConfigurer())
                 .bind(camelContext, newlyCreated, componentProperties);