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.