BeanUtilsBean.setProperty does not handle some kind of nested properties
------------------------------------------------------------------------

                 Key: BEANUTILS-345
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-345
             Project: Commons BeanUtils
          Issue Type: Bug
          Components: Bean / Property Utils
    Affects Versions: 1.8.0
         Environment: Windows XP, java 1.6
            Reporter: Simone Riccucci


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

Example

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

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 {
......
.......


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to