From 45c542e51e9b01526a97a1644aebfe1e94a2342f Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Fri, 18 Sep 2009 20:32:41 +0000 Subject: [PATCH] updated for change in conversion service api; source type desc now required --- .../springframework/beans/TypeConverterDelegate.java | 11 ++++++----- 1 file changed, 6 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 1725ae68e2..85f6017317 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 @@ -166,16 +166,17 @@ class TypeConverterDelegate { // No custom editor but custom ConversionService specified? ConversionService conversionService = this.propertyEditorRegistry.getConversionService(); if (editor == null && conversionService != null && convertedValue != null) { - TypeDescriptor typeDesc; + TypeDescriptor sourceTypeDesc = TypeDescriptor.valueOf(convertedValue.getClass()); + TypeDescriptor targetTypeDesc; if (methodParam != null) { - typeDesc = (descriptor != null ? + targetTypeDesc = (descriptor != null ? new BeanTypeDescriptor(methodParam, descriptor) : new TypeDescriptor(methodParam)); } else { - typeDesc = TypeDescriptor.valueOf(requiredType); + targetTypeDesc = TypeDescriptor.valueOf(requiredType); } - if (conversionService.matches(convertedValue.getClass(), typeDesc)) { - return (T) conversionService.convert(convertedValue, typeDesc); + if (conversionService.canConvert(sourceTypeDesc, targetTypeDesc)) { + return (T) conversionService.convert(convertedValue, sourceTypeDesc, targetTypeDesc); } }