You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dl...@apache.org on 2017/04/17 08:45:32 UTC

svn commit: r1791667 - in /felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl: AdapterImpl.java Util.java

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);