You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Niall Pemberton (JIRA)" <ji...@apache.org> on 2007/05/20 10:26:16 UTC

[jira] Resolved: (BEANUTILS-199) [beanutils] BeanUtils.setProperty is over-zealous at converting types

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

Niall Pemberton resolved BEANUTILS-199.
---------------------------------------

    Resolution: Fixed

Fixed by the changes implemented as part of BEANUTILS-258

> [beanutils] BeanUtils.setProperty is over-zealous at converting types
> ---------------------------------------------------------------------
>
>                 Key: BEANUTILS-199
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-199
>             Project: Commons BeanUtils
>          Issue Type: Improvement
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.6
>         Environment: Operating System: All
> Platform: All
>            Reporter: Tim Vernum
>            Priority: Minor
>             Fix For: 1.8.0
>
>         Attachments: BeanUtils-invalid-conversion.patch, copyProperty_extended.patch, Test.java, Test.java
>
>
> As of Release 1.6, BeanUtils.setProperty goes to great lengths to convert types
> into Strings and then from Strings into valid target types, without ever
> considering whether the original value was valid to start with.
> e.g: 
> setProperty( bean, "object", new Integer(77) ) ;
> will set the "object" in the bean to the String "77".
> when what is intended is to set it to an Integer.
> copyProperty gets it right, but it doesn't understand nested properties, so it
> isn't useful for my situation.
> PropertyUtils does a better job, but it doesn't do *any* conversions, so it
> breaks in other situations.
> There doesn't seem to be a reasonable way to say:
>  "set nested/indexed/mapped property 'X' in this bean to be value 'Y', and do
> whatever conversions are necessary to get it there"
> The options seem to be:
> "set simple property X to value Y with proper conversions" (BeanUtils.copyProperty)
> "set complex property X to value Y with too many conversions"
> (BeanUtils.setProperty)
> "set complex property X to value Y with no conversions" (PropertyUtils.setProperty)
> Is BeanUtils.setProperty wrong? Or do we need another method that set complex
> properties using the same conversion methds as "copyProperty" ?
> I have a patch (which I'll attach) which makes setProperty do something closer
> to what I think it should do, but I'm not sure if that's the correct approach.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org