You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2006/11/11 16:39:15 UTC

svn commit: r473736 - /jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java

Author: niallp
Date: Sat Nov 11 07:39:14 2006
New Revision: 473736

URL: http://svn.apache.org/viewvc?view=rev&rev=473736
Log:
Fix NullPointerException introduced by BEANUTILS-207

Modified:
    jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java

Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java?view=diff&rev=473736&r1=473735&r2=473736
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java Sat Nov 11 07:39:14 2006
@@ -827,15 +827,16 @@
             String next = name.substring(0, period);
             int indexOfINDEXED_DELIM = next.indexOf(PropertyUtils.INDEXED_DELIM);
             int indexOfMAPPED_DELIM = next.indexOf(PropertyUtils.MAPPED_DELIM);
+            Object nestedBean = null;
             if (indexOfMAPPED_DELIM >= 0 &&
                     (indexOfINDEXED_DELIM < 0 ||
                     indexOfMAPPED_DELIM < indexOfINDEXED_DELIM)) {
-                bean = getMappedProperty(bean, next);
+                nestedBean = getMappedProperty(bean, next);
             } else {
                 if (indexOfINDEXED_DELIM >= 0) {
-                    bean = getIndexedProperty(bean, next);
+                    nestedBean = getIndexedProperty(bean, next);
                 } else {
-                    bean = getSimpleProperty(bean, next);
+                    nestedBean = getSimpleProperty(bean, next);
                 }
             }
             if (bean == null) {
@@ -844,6 +845,7 @@
                         name.substring(0, period) + "' on bean class '" +
                         bean.getClass() + "'");
             }
+            bean = nestedBean;
             name = name.substring(period + 1);
         }
 
@@ -1774,20 +1776,22 @@
             String next = name.substring(0, delim);
             indexOfINDEXED_DELIM = next.indexOf(PropertyUtils.INDEXED_DELIM);
             indexOfMAPPED_DELIM = next.indexOf(PropertyUtils.MAPPED_DELIM);
+            Object nestedBean = null;
             if (bean instanceof Map) {
-                bean = getPropertyOfMapBean((Map)bean, next);
+                nestedBean = getPropertyOfMapBean((Map)bean, next);
             } else if (indexOfMAPPED_DELIM >= 0) {
-                bean = getMappedProperty(bean, next);
+                nestedBean = getMappedProperty(bean, next);
             } else if (indexOfINDEXED_DELIM >= 0) {
-                bean = getIndexedProperty(bean, next);
+                nestedBean = getIndexedProperty(bean, next);
             } else {
-                bean = getSimpleProperty(bean, next);
+                nestedBean = getSimpleProperty(bean, next);
             }
             if (bean == null) {
                 throw new IllegalArgumentException
                         ("Null property value for '" + name.substring(0, delim) +
                          "' on bean class '" + bean.getClass() + "'");
             }
+            bean = nestedBean;
             name = name.substring(delim + 1);
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org