Author: britter
Date: Sun Mar 3 13:14:38 2013
New Revision: 1452036
URL: http://svn.apache.org/r1452036
Log:
[BEANUTILS-411] - BeanUtilsBean.setProperty throws IllegalArgumentException if
getter of nested property returns null. Thanks to Marcus Zander
Added:
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
(with props)
Modified:
commons/proper/beanutils/trunk/pom.xml
commons/proper/beanutils/trunk/src/changes/changes.xml
commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java
Modified: commons/proper/beanutils/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/pom.xml?rev=1452036&r1=1452035&r2=1452036&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/pom.xml (original)
+++ commons/proper/beanutils/trunk/pom.xml Sun Mar 3 13:14:38 2013
@@ -144,6 +144,10 @@
<name>Alex Crown</name>
<email></email>
</contributor>
+ <contributor>
+ <name>Marcus Zander</name>
+ <email>[email protected]</email>
+ </contributor>
</contributors>
<dependencies>
Modified: commons/proper/beanutils/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/changes/changes.xml?rev=1452036&r1=1452035&r2=1452036&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/src/changes/changes.xml (original)
+++ commons/proper/beanutils/trunk/src/changes/changes.xml Sun Mar 3 13:14:38
2013
@@ -40,6 +40,9 @@ The <action> type attribute can be add,u
<body>
<release version="1.8.4" date="in SVN" description="Bug fix for 1.8.3">
+ <action dev="britter" type="fix" issue="BEANUTILS-411" due-to="Marcus
Zander">
+ BeanUtilsBean.setProperty throws IllegalArgumentException if getter
of nested property returns null
+ </action>
<action dev="britter" type="update" issue="BEANUTILS-429" >
Delete trailing white spaces and white spaces on empty lines from all
files
</action>
Modified:
commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java
URL:
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java?rev=1452036&r1=1452035&r2=1452036&view=diff
==============================================================================
---
commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java
(original)
+++
commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java
Sun Mar 3 13:14:38 2013
@@ -901,6 +901,9 @@ public class BeanUtilsBean {
while (resolver.hasNested(name)) {
try {
target = getPropertyUtils().getProperty(target,
resolver.next(name));
+ if (target == null) { // the value of a nested property is null
+ return;
+ }
name = resolver.remove(name);
} catch (NoSuchMethodException e) {
return; // Skip this property setter
Added:
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
URL:
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java?rev=1452036&view=auto
==============================================================================
---
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
(added)
+++
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
Sun Mar 3 13:14:38 2013
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.beanutils.bugs;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.beanutils.BeanUtilsBean;
+
+/**
+ * BeanUtilsBean.setProperty throws IllegalArgumentException if getter of
nested
+ * property returns null
+ *
+ * <p />
+ * See https://issues.apache.org/jira/browse/BEANUTILS-411
+ * <p />
+ *
+ * @version $Revision$ $Date$
+ */
+public class Jira411TestCase extends TestCase {
+
+ private BeanUtilsBean instance;
+ private DummyBean testBean;
+
+ protected void setUp() throws Exception {
+ instance = new BeanUtilsBean();
+ testBean = new DummyBean();
+ }
+
+ public void testSetProperty() throws Exception {
+ instance.setProperty(testBean, "imgLink.x", "1");
+ }
+
+ public class DummyBean {
+
+ private String imgLink = null;
+
+ public String getImgLink() {
+ return imgLink;
+ }
+
+ public void setImgLink(String imgLink) {
+ this.imgLink = imgLink;
+ }
+ }
+}
Propchange:
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/bugs/Jira411TestCase.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Mar 3 13:14:38 2013
@@ -0,0 +1,2 @@
+Revision
+Date