Author: dleangen
Date: Mon Apr 17 08:45:32 2017
New Revision: 1791667

URL: http://svn.apache.org/viewvc?rev=1791667&view=rev
Log:
Fix for FELIX-5616

Modified:
    
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
    
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/Util.java

Modified: 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java?rev=1791667&r1=1791666&r2=1791667&view=diff
==============================================================================
--- 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
 (original)
+++ 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
 Mon Apr 17 08:45:32 2017
@@ -143,7 +143,7 @@ public class AdapterImpl implements Inte
         @SuppressWarnings("unchecked")
         @Override
         public Object to(Type type) {
-            List<ConverterFunction<?>> tr = 
typeRules.get(Util.primitiveToBoxed(type));
+            List<ConverterFunction<?>> tr = typeRules.get(Util.baseType(type));
             if (tr == null)
                 tr = Collections.emptyList();
             List<ConverterFunction<?>> converters = new ArrayList<>(tr.size() 
+ allRules.size());

Modified: 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/Util.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/Util.java?rev=1791667&r1=1791666&r2=1791667&view=diff
==============================================================================
--- 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/Util.java
 (original)
+++ 
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/Util.java
 Mon Apr 17 08:45:32 2017
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.Arrays;
 import java.util.Collections;
@@ -32,6 +33,8 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import org.osgi.util.converter.TypeReference;
+
 class Util {
     private static final Map<Class<?>, Class<?>> boxedClasses;
     static {
@@ -56,6 +59,15 @@ class Util {
         else
             return null;
     }
+
+    static Type baseType(Type type) {
+        if (type instanceof Class)
+            return primitiveToBoxed((Class<?>) type);
+        else if (type instanceof ParameterizedType)
+            return type;
+        else
+            return null;
+    }
 
     static Class<?> primitiveToBoxed(Class<?> cls) {
         Class<?> boxed = boxedClasses.get(cls);


Reply via email to