commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Benedict (JIRA)" <j...@apache.org>
Subject [jira] Commented: (BEANUTILS-91) PropertyUtils.copyProperties throws exceptions contrary to documentation
Date Sun, 15 Jul 2007 01:48:04 GMT

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

Paul Benedict commented on BEANUTILS-91:
----------------------------------------

Exceptions are not part of the method signature. Because both the aforementioned exceptions
are checked exceptions, removing them may cause a compiler error for newly compiled code.
The java compiler may find code catching exceptions that are never thrown and may error, but
for already compiled code, no problems.

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


Mime
View raw message