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

BeanUtilsBean.setProperty does not handle some kind of nested properties

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.8.0
    • 1.8.1
    • Bean / Property Utils
    • None
    • Windows XP, java 1.6

    Description

      If we have a Bean containing a two dimension array, the method setProperty of class BeanUtilsBean does not work correctly.

      Example

      MyBean.java
      public class MyBean {
      
      	String [][]matr =new String[][]{{"1","2"},{"3","4"}};
      	
      	public String[][] getMatr() {
      		return matr;
      	}
      	public void setMatr(String[][] matr) {
      		this.matr = matr;
      	}
      }
      

      When calling

       BeanUtilsBean.getInstance().setProperty(myBean, "matr[0][0]","Sample")

      the method does not set the first element of first array.

      I have patched this behaviour adding the line between comment //BEGIN PATCH and //END PATCH to BeanUtilsBean.java

      BeanUtilsBean.java
      920: // Calculate the property type
      921:       if (target instanceof DynaBean) {
      922:            DynaClass dynaClass = ((DynaBean) target).getDynaClass();
      923:            DynaProperty dynaProperty = dynaClass.getDynaProperty(propName);
      924:            if (dynaProperty == null) {
      925:                return; // Skip this property setter
      926:            }
      927:            type = dynaProperty.getType();
      928:        } else if (target instanceof Map) {
      929:            type = Object.class;
      930:            // BEGIN PATCH 
      931:        } else if (target.getClass().isArray() && index>=0) {
      932:        	type = Array.get(target, index).getClass();
      933:        	// END PATCH
      934:        } else {
      ......
      ......
      

      Attachments

        Issue Links

          Activity

            People

              niallp Niall Pemberton
              sriccucc Simone Riccucci
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: