Author: mbenson
Date: Wed Jun 15 22:48:02 2011
New Revision: 1136232

URL: http://svn.apache.org/viewvc?rev=1136232&view=rev
Log:
default to object component type for unbound type variables

Modified:
    
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
    
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java

Modified: 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
URL: 
http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java?rev=1136232&r1=1136231&r2=1136232&view=diff
==============================================================================
--- 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
 (original)
+++ 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
 Wed Jun 15 22:48:02 2011
@@ -21,6 +21,7 @@ import java.lang.reflect.Array;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang3.reflect.TypeUtils;
 
@@ -43,7 +44,8 @@ public class IndexedAccess extends Acces
             return TypeUtils.getArrayComponentType(containerType);
         }
         if (TypeUtils.isAssignable(containerType, Iterable.class)) {
-            return TypeUtils.getTypeArguments(containerType, 
Iterable.class).get(ITERABLE_TYPE);
+            Map<TypeVariable<?>, Type> typeArguments = 
TypeUtils.getTypeArguments(containerType, Iterable.class);
+            return typeArguments.containsKey(ITERABLE_TYPE) ? 
typeArguments.get(ITERABLE_TYPE) : Object.class;
         }
         return null;
     }

Modified: 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
URL: 
http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java?rev=1136232&r1=1136231&r2=1136232&view=diff
==============================================================================
--- 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
 (original)
+++ 
incubator/bval/sandbox/lang3-work/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
 Wed Jun 15 22:48:02 2011
@@ -42,7 +42,8 @@ public class KeyedAccess extends AccessS
      */
     public static Type getJavaElementType(Type containerType) {
         if (TypeUtils.isAssignable(containerType, Map.class)) {
-            return TypeUtils.getTypeArguments(containerType, 
Map.class).get(MAP_TYPEVARS[1]);
+            Map<TypeVariable<?>, Type> typeArguments = 
TypeUtils.getTypeArguments(containerType, Map.class);
+            return typeArguments.containsKey(MAP_TYPEVARS[1]) ? 
typeArguments.get(MAP_TYPEVARS[1]) : Object.class;
         }
         return null;
     }
@@ -71,7 +72,7 @@ public class KeyedAccess extends AccessS
             Map<?, ?> map = (Map<?, ?>) instance;
             Map<TypeVariable<?>, Type> typeArguments = 
TypeUtils.getTypeArguments(containerType, Map.class);
             Type keyType = typeArguments.get(MAP_TYPEVARS[0]);
-            if (key == null || TypeUtils.isInstance(key, keyType)) {
+            if (key == null || keyType == null || TypeUtils.isInstance(key, 
keyType)) {
                 return map.get(key);
             }
             if (key instanceof String) {


Reply via email to