[
https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12612015#action_12612015
]
James Carman commented on BEANUTILS-321:
----------------------------------------
By the way, this is mentioned in the API documentation (albeit in a somewhat
roundabout way). The BeanUtils class uses a PropertyUtilsBean:
http://commons.apache.org/beanutils/commons-beanutils-1.7.0/docs/api/org/apache/commons/beanutils/PropertyUtilsBean.html
"The name of the actual getter or setter method to be used is determined using
standard JavaBeans instrospection, so that (unless overridden by a BeanInfo
class, a property named "xyz" will have a getter method named getXyz() or (*for
boolean properties only*) isXyz(), and a setter method named setXyz()."
> [beanutils] wont recognize isXXX() properties returning Boolean Object
> ----------------------------------------------------------------------
>
> Key: BEANUTILS-321
> URL: https://issues.apache.org/jira/browse/BEANUTILS-321
> Project: Commons BeanUtils
> Issue Type: New Feature
> Affects Versions: 1.7.0
> Reporter: thomas menzel
>
> it seems that an isXXX() style property returning an java.lang.Boolean Object
> is NOT recognized as the getter peoperty -- at least it wont copy it.
> Hence, the test case below will fail.
> I suggest to handle these props as well, as for a user of BeanUtils this
> was/is quite surprising to me -- and probably others.
> Thx
> {code:java}
> /**
> * @author tmenzel
> *
> */
> public class BeanUtilsTest extends TestCase {
> private class FooBean {
> Boolean booleanClass;
> boolean booleanPrimitive;
> public Boolean isBooleanClass() {
> return booleanClass;
> }
> public void setBooleanClass(Boolean booleanClass) {
> this.booleanClass = booleanClass;
> }
> public boolean isBooleanPrimitive() {
> return booleanPrimitive;
> }
> public void setBooleanPrimitive(boolean booleanPrimitive) {
> this.booleanPrimitive = booleanPrimitive;
> }
> }
> public void testCopyBooleanProps() throws Exception {
> FooBean a = new FooBean();
> a.setBooleanClass(false);
> a.setBooleanPrimitive(false);
> FooBean b = new FooBean();
> b.setBooleanClass(true);
> b.setBooleanPrimitive(true);
> BeanUtils.copyProperties(a, b);
> assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
> assertEquals(a.isBooleanClass(), b.isBooleanClass());
> }
> }
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.