Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.8.0
-
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
- is related to
-
BEANUTILS-368 NullPointerException in BeanUtilsBean .setProperty(), line: 930
- Closed