[ 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]