commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton (JIRA)" <>
Subject [jira] Updated: (BEANUTILS-91) PropertyUtils.copyProperties throws exceptions contrary to documentation
Date Wed, 01 Aug 2007 20:34:53 GMT


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:
>             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:,
> 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:
For additional commands, e-mail:

View raw message