Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.9.0, 1.9.1, 1.9.2
-
None
-
None
-
OSX 10.11.3, Ubuntu 14.04, ...
-
Important
Description
After 1.8.3 this stop to work and my legacy Struts 1.x application starting to have bugs...
Before was String.... now is String array ? Why ?
BeanUtilsTest.java
@Test public void testSetPropertyBeanUtils183_ok_butFailOn192() throws Exception { String[] value = { "odd" }; DynaBean dynaForm = createForm(); String propertyName = "mapProperty(one)"; BeanUtils.setProperty(dynaForm, propertyName, value); @SuppressWarnings("unchecked") Map<String, Object> retrived = (Map<String, Object>) dynaForm .get("mapProperty"); // on bean utils 1.7.0, 1.8.0 ... 1.8.3 is OK assertThat(retrived.get("one"), instanceOf(String.class)); assertThat(retrived.get("one"), equalTo((Object) "odd")); // after 1.9.0 ... 1.9.2 is the problem... // assertThat(retrived.get("one"), instanceOf(String[].class)); } private static DynaBean createForm() { DynaClass dynaClass = new BasicDynaClass("MyForm", null, new DynaProperty[] { new DynaProperty("mapProperty", java.util.HashMap.class) }); try { DynaBean p = dynaClass.newInstance(); // initialize p.set("mapProperty", new HashMap<>()); return p; } catch (IllegalAccessException | InstantiationException ex) { throw new RuntimeException(ex); } }