assertEquals("name2", bw.getPropertyValue("list[0].nestedIndexedBean.list[0].name"));
assertEquals("name3", bw.getPropertyValue("list[1].nestedIndexedBean.list[1].name"));
assertEquals("name4", bw.getPropertyValue("map[key1].nestedIndexedBean.map[key1].name"));
assertEquals("name5", bw.getPropertyValue("map['key2'].nestedIndexedBean.map[\"key2\"].name"));
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0].nestedIndexedBean.array[0].name", "name5");
pvs.addPropertyValue("array[1].nestedIndexedBean.array[1].name", "name4");
pvs.addPropertyValue("list[0].nestedIndexedBean.list[0].name", "name3");
pvs.addPropertyValue("list[1].nestedIndexedBean.list[1].name", "name2");
pvs.addPropertyValue("map[key1].nestedIndexedBean.map[\"key1\"].name", "name1");
pvs.addPropertyValue("map['key2'].nestedIndexedBean.map[key2].name", "name0");
bw.setPropertyValues(pvs);
assertEquals("arrayname5", tb0.getNestedIndexedBean().getArray()[0].getName());
assertEquals("arrayname4", tb1.getNestedIndexedBean().getArray()[1].getName());
assertEquals("listname3", ((TestBean) tb2.getNestedIndexedBean().getList().get(0)).getName());
assertEquals("listname2", ((TestBean) tb3.getNestedIndexedBean().getList().get(1)).getName());