commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (BEANUTILS-369) using PropertyUtilsBean getProperty method does not find attributes in a class when names have a single lower case character
Date Wed, 25 Nov 2009 10:50:39 GMT

     [ https://issues.apache.org/jira/browse/BEANUTILS-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Niall Pemberton resolved BEANUTILS-369.
---------------------------------------

    Resolution: Invalid

BeanUtils operates according to the Java Beans Specification:

    http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html


There is no capitalization/decapitalization done in BeanUtils - it uses the Introspector to
find the properties of a bean:

    http://java.sun.com/j2se/1.5.0/docs/api/java/beans/Introspector.html

Whatever you call the instance variable is irrelevant - it works out the properties of a bean
from the get/set methods you have. The Java Bean Specification states in section "8.8 Capitalization
of inferred names" that when the first character is converted to lowercase unless the first
two characters are both uppercase then the property name is "unchanged".

So when you have a getter method named "getARatedCd" this is translated into property name
"ARatedCd" and not "aRatedCd". 

So to resolve your issue you have two choices:

    * use property name "ARatedCd" instead or
    *  change you method names to "getaRatedCd" and "setaRatedCd"

I have added a test case to demonstrate this:

    http://svn.apache.org/repos/asf/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/bugs/Jira369TestCase.java

Closing as INVALID

> using PropertyUtilsBean getProperty method does not find attributes in a class when names
have a single lower case character
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-369
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-369
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Bean / Property Utils
>    Affects Versions: 1.8.2
>         Environment: windows xp
>            Reporter: K Lamb
>
> Using a class that has an attribute named like aRatedCd with get/set methods of getARatedCd()
and setARatedCd(String) causes the PropertyDescriptor info to become name=ARatedCd. the read
and write methods are found and have the above names. However because the name in the PropertyDescriptor
has changed from aRatedCd to ARatedCd using the getProperty(obj, "aRatedCd") method thros
a NoSuchMethodException.
> If the aRatedCd attribute name is changed to something like aaRatedCd and the methods
are also changed to getAaRatedCd() and setAaRatedCd(String) then the NoSuchMethodException
is not thrown when using the getProperty(obj, "aaRatedCd") call.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message