Commit 80652007 authored by Patrick Radtke's avatar Patrick Radtke Committed by Dave Syer

RelaxedDataBinder handling for untyped map

Fixes gh-709
parent a77fee9f
......@@ -229,6 +229,9 @@ public class RelaxedDataBinder extends DataBinder {
return;
}
TypeDescriptor descriptor = parent.getMapValueTypeDescriptor();
if (descriptor == null) {
descriptor = TypeDescriptor.valueOf(Object.class);
}
if (!descriptor.isMap() && !descriptor.isCollection()
&& !descriptor.getType().equals(Object.class)) {
return;
......
......@@ -258,6 +258,13 @@ public class RelaxedDataBinderTests {
assertEquals("123", target.getNested().get("value"));
}
@Test
public void testBindNestedUntypedMap() throws Exception {
TargetWithNestedUntypedMap target = new TargetWithNestedUntypedMap();
bind(target, "nested.foo: bar\n" + "nested.value: 123");
assertEquals("123", target.getNested().get("value"));
}
@Test
public void testBindNestedMapOfString() throws Exception {
TargetWithNestedMapOfString target = new TargetWithNestedMapOfString();
......@@ -503,6 +510,22 @@ public class RelaxedDataBinderTests {
}
}
@SuppressWarnings("rawtypes")
public static class TargetWithNestedUntypedMap {
private Map nested;
public Map getNested() {
return this.nested;
}
public void setNested(Map nested) {
this.nested = nested;
}
}
public static class TargetWithNestedMapOfString {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment