diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapEntryConverter.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapEntryConverter.java index e6b183154b..f2204715ef 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapEntryConverter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapEntryConverter.java @@ -38,7 +38,7 @@ class MapEntryConverter { if (this.valueConverter == null) { throw new ConverterNotFoundException(sourceValueType, targetValueType); } - this.targetKeyType = targetKeyType; + this.sourceValueType = sourceValueType; this.targetValueType = targetValueType; } } diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java index 61a5f3a577..2721b3efee 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java @@ -417,6 +417,21 @@ public class GenericConversionServiceTests { assertEquals(new Integer(3), result[0]); } + @Test + public void convertObjectToMap() { + Map result = conversionService.convert("foo=bar bar=baz", Map.class); + assertEquals("bar", result.get("foo")); + assertEquals("baz", result.get("bar")); + } + + @Test + public void convertObjectToMapWithConversion() throws Exception { + conversionService.addConverterFactory(new NumberToNumberConverterFactory()); + Map result = (Map) conversionService.convert(1L, TypeDescriptor.valueOf(Integer.class), new TypeDescriptor( + getClass().getField("genericMap2"))); + assertEquals(new Long(1), result.get(1L)); + } + @Test public void convertStringArrayToMap() { Map result = conversionService.convert(new String[] { "foo=bar", "bar=baz", "baz=boop" }, Map.class);