You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by br...@apache.org on 2014/10/19 20:02:20 UTC

svn commit: r1632962 - in /commons/sandbox/beanutils2/trunk/src: main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java

Author: britter
Date: Sun Oct 19 18:02:20 2014
New Revision: 1632962

URL: http://svn.apache.org/r1632962
Log:
Use NullObject pattern when indexed properties return null

Modified:
    commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java
    commons/sandbox/beanutils2/trunk/src/test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java

Modified: commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java?rev=1632962&r1=1632961&r2=1632962&view=diff
==============================================================================
--- commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java (original)
+++ commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultIndexedPropertyGetterAccessor.java Sun Oct 19 18:02:20 2014
@@ -46,6 +46,9 @@ final class DefaultIndexedPropertyGetter
         checkArgument(index >= 0, "Indexed property '%s' in bean of type %s cannot be get from a negative index %s",
                 propertyName, bean.getClass().getName(), index);
         Object indexedValue = invokeGetter(index);
+        if (indexedValue == null) {
+            return new NullBeanAccessor<Object>(bean.getClass().getName(), indexedReadMethod.getName());
+        }
         return BeanAccessorFactory.createBeanAccessor(indexedValue);
     }
 

Modified: commons/sandbox/beanutils2/trunk/src/test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java?rev=1632962&r1=1632961&r2=1632962&view=diff
==============================================================================
--- commons/sandbox/beanutils2/trunk/src/test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java (original)
+++ commons/sandbox/beanutils2/trunk/src/test/java/org/apache/commons/beanutils2/GetIndexedPropertyTestCase.java Sun Oct 19 18:02:20 2014
@@ -20,6 +20,7 @@ package org.apache.commons.beanutils2;
 import static org.apache.commons.beanutils2.BeanUtils.on;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 import org.apache.commons.beanutils2.testbeans.TestBean;
 import org.apache.commons.beanutils2.testbeans.ThrowingExceptionBean;
@@ -68,6 +69,13 @@ public class GetIndexedPropertyTestCase 
         assertEquals(expected, accessor.get());
     }
 
+    @Test
+    public void getIndexedForNullIndex() throws Exception {
+        testBean.setStringIndexed(0, null);
+        BeanAccessor<?> accessor = on(testBean).getIndexed("stringIndexed").at(0);
+        assertNull(accessor.get());
+    }
+
     @Test(expected = PropertyGetterInvocationException.class)
     public void getExceptionIndexed() {
         on(exceptionBean).getIndexed("exceptionIndexed").at(0);