From 4a7b96c4ca5d4ddee23b772df65e5b3dfeceddce Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 12 Dec 2011 00:44:38 +0000 Subject: [PATCH] take element/key/value objects into account for the best possible type descriptor --- .../org/springframework/beans/TypeConverterDelegate.java | 6 +++--- .../org/springframework/core/convert/TypeDescriptor.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java b/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java index 12e6ed7c53..64a03910c0 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/TypeConverterDelegate.java @@ -529,7 +529,7 @@ class TypeConverterDelegate { methodParam.increaseNestingLevel(); } Object convertedElement = convertIfNecessary( - indexedPropertyName, null, element, elementType, typeDescriptor.getElementTypeDescriptor()); + indexedPropertyName, null, element, elementType, typeDescriptor.getElementTypeDescriptor(element)); if (methodParam != null) { methodParam.decreaseNestingLevel(); } @@ -624,12 +624,12 @@ class TypeConverterDelegate { methodParam.setTypeIndexForCurrentLevel(0); } Object convertedKey = convertIfNecessary(keyedPropertyName, null, key, keyType, - typeDescriptor.getMapKeyTypeDescriptor()); + typeDescriptor.getMapKeyTypeDescriptor(key)); if (methodParam != null) { methodParam.setTypeIndexForCurrentLevel(1); } Object convertedValue = convertIfNecessary(keyedPropertyName, null, value, valueType, - typeDescriptor.getMapValueTypeDescriptor()); + typeDescriptor.getMapValueTypeDescriptor(value)); if (methodParam != null) { methodParam.decreaseNestingLevel(); } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/TypeDescriptor.java b/org.springframework.core/src/main/java/org/springframework/core/convert/TypeDescriptor.java index a43b709f13..f2c4cc6e29 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/TypeDescriptor.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/TypeDescriptor.java @@ -324,7 +324,7 @@ public class TypeDescriptor { */ public TypeDescriptor getMapKeyTypeDescriptor(Object key) { TypeDescriptor keyType = getMapKeyTypeDescriptor(); - return (keyType != TypeDescriptor.UNKNOWN ? keyType : TypeDescriptor.forObject(key)); + return (!TypeDescriptor.UNKNOWN.equals(keyType) ? keyType : TypeDescriptor.forObject(key)); } /** @@ -353,7 +353,7 @@ public class TypeDescriptor { */ public TypeDescriptor getMapValueTypeDescriptor(Object value) { TypeDescriptor valueType = getMapValueTypeDescriptor(); - return (valueType != TypeDescriptor.UNKNOWN ? valueType : TypeDescriptor.forObject(value)); + return (!TypeDescriptor.UNKNOWN.equals(valueType) ? valueType : TypeDescriptor.forObject(value)); } /**