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/08/01 22:34:53 UTC

[jira] Updated: (BEANUTILS-91) PropertyUtils.copyProperties throws exceptions contrary to documentation

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

Niall Pemberton updated BEANUTILS-91:
-------------------------------------

    Fix Version/s:     (was: 1.8.0)
                   LATER THAN 1.8.0

> PropertyUtils.copyProperties throws exceptions contrary to documentation
> ------------------------------------------------------------------------
>
>                 Key: BEANUTILS-91
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-91
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Bean / Property Utils
>    Affects Versions: 1.5
>         Environment: Operating System: other
> Platform: Other
>            Reporter: Arun Mammen Thomas
>            Priority: Minor
>             Fix For: LATER THAN 1.8.0
>
>         Attachments: PropertyUtilsTest.java, temp.java
>
>
> 1) The copyProperties method is documented as throwing IllegalAccessException 
> when access to a particular method is not available.  In fact, because 
> internally the methods to be invoked are filtered for accessiblity 
> (MethodUtils.getAccessibleMethod) before invocation, the possible sources of 
> the IllegalAccessException will never actually throw an 
> IllegalAccessException.  
> Worse, however, is that the result of a failure to return an accessible method 
> is actually taken as occasion to throw a NoSuchMethodException instead.  
> 2) The copyProperties method is also documented as throwing 
> NoSuchMethodException when a method cannot be found.  I'm not sure if this is 
> an error or not, but a NoSuchMethodException is not thrown when a property of 
> the same name but a different type is found.  (This would, to my mind, be an 
> occasion of not finding an appropriate method for the setter to function 
> properly).  
> Unfortunately, again, there is something worse.  In this case, instead of 
> throwing NoSuchMethodException, an IllegalArgumentException is thrown.  
> IllegalArgumentException, as a runtime exception, might have been 
> appropriateexcept for the fact that it is explicitly documented as being 
> thrown when either the source or the destination arguments are null - no other 
> reasons for throwing this are detailed.  (Wouldn't NullPointerException be 
> more appropriate anyway? Curious about the decision to recast this to 
> IllegalArgumentException....)  While this is certainly allowed for 
> RuntimeExceptions, in this case, the documentation is quite misleading about 
> what is actually to be expected.  
> I'll attach a JUnitTestCase that captures both of these items.

-- 
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: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org