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);