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 2015/05/19 22:25:41 UTC

[2/2] camel git commit: CAMEL-8782: Configuring endpoints using reference lookup may fail with matching primitive types with their Object counterpart types

CAMEL-8782: Configuring endpoints using reference lookup may fail with matching primitive types with their Object counterpart types


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/568ce2b1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/568ce2b1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/568ce2b1

Branch: refs/heads/camel-2.15.x
Commit: 568ce2b13ebe9c67627f8f0e403e9ac49b60c742
Parents: a696a46
Author: Claus Ibsen <da...@apache.org>
Authored: Tue May 19 21:49:34 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue May 19 22:30:00 2015 +0200

----------------------------------------------------------------------
 .../org/apache/camel/util/IntrospectionSupport.java     | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/568ce2b1/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java b/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
index d04c310..13ceba9 100755
--- a/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
@@ -43,6 +43,8 @@ import org.apache.camel.TypeConverter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.util.ObjectHelper.isAssignableFrom;
+
 /**
  * Helper for introspections of beans.
  * <p/>
@@ -502,16 +504,20 @@ public final class IntrospectionSupport {
                 if (ref == null) {
                     // try the next method if nothing was found
                     continue;
-                } else if (!parameterType.isAssignableFrom(ref.getClass())) {
+                } else {
                     // setter method has not the correct type
-                    continue;
+                    // (must use ObjectHelper.isAssignableFrom which takes primitive types into account)
+                    boolean assignable = isAssignableFrom(parameterType, ref.getClass());
+                    if (!assignable) {
+                        continue;
+                    }
                 }
             }
 
             try {
                 try {
                     // If the type is null or it matches the needed type, just use the value directly
-                    if (value == null || parameterType.isAssignableFrom(ref.getClass())) {
+                    if (value == null || isAssignableFrom(parameterType, ref.getClass())) {
                         // we may want to set options on classes that has package view visibility, so override the accessible
                         setter.setAccessible(true);
                         setter.invoke(target, ref);