Uploaded image for project: 'Commons BeanUtils'
  1. Commons BeanUtils
  2. BEANUTILS-485

BeanUtils.setProperty set wrong newValue for a DynaBean with a Map Property

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.9.0, 1.9.1, 1.9.2
    • None
    • Bean / Property Utils
    • 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);
      		}
      
      	}
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            matafe Mauricio
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: