Spring 3.0.0. introduced the property autoGrowNestedPaths to allow a data binder to automatically create nested objects that are not yet there.
However, calling:
dataBinder.setAutoGrowNestedPaths(false);
has no effect.
I see in the debugger that the dataBinder.autoGrowNestedPaths is false but the binding result's ( BeanPropertyBindingResult) corresponding property is true. We set autoGrowNestedPaths = false before binding!
Our code that worked fine in Spring 2.5 doesn't work anymore as new nested objects are being created even though we've set dataBinder.autoGrowNestedPaths = false.
e.g.
try {
return dataBinder.getBindingResult().getFieldValue(name);
} catch (NullValueInNestedPathException ex) {
// Can happen when root or intermediate objects are null
}