From 4afc2c926d7355d7de13a05915ec6c8bcc69b0da Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Sun, 5 Jun 2011 06:04:49 +0000 Subject: [PATCH] catch ConversionFailedException and fallback to default container conversion logic rather than propogate exception git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4453 50f2f4bb-b051-0410-bef5-90022cba6387 --- .../org/springframework/beans/TypeConverterDelegate.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 22e468b2b66..5ffbad61b21 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 @@ -28,6 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.core.CollectionFactory; import org.springframework.core.MethodParameter; +import org.springframework.core.convert.ConversionFailedException; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.type.filter.TypeFilter; @@ -135,7 +136,11 @@ class TypeConverterDelegate { TypeDescriptor sourceTypeDesc = TypeDescriptor.forObject(newValue); TypeDescriptor targetTypeDesc = typeDescriptor; if (conversionService.canConvert(sourceTypeDesc, targetTypeDesc)) { - return (T) conversionService.convert(convertedValue, sourceTypeDesc, targetTypeDesc); + try { + return (T) conversionService.convert(convertedValue, sourceTypeDesc, targetTypeDesc); + } catch (ConversionFailedException e) { + // fallback to default conversion logic below + } } }