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

Brendan Nolan updated BEANUTILS-380:
------------------------------------

    Attachment: BEANUTILS-380.patch

Proposed code change and corresponding test case

> [beanutils] BeanMap.put() method should pass the root cause of any 
> InvocationTargetException that is thrown when invoking the setter
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-380
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-380
>             Project: Commons BeanUtils
>          Issue Type: Improvement
>          Components: Bean / Property Utils
>    Affects Versions: 1.8.3
>            Reporter: Brendan Nolan
>         Attachments: BEANUTILS-380.patch
>
>
> The following code 
> {code}
> import org.apache.commons.beanutils.BeanMap;
> import SetterTest.SetterThrownException;
> public class SetterTest {
>       public static void main(String[] args) {
>               
>               try {
>                       BeanMap map = new BeanMap(new SetterTest());
>                       map.put("value", "value");
>               } catch (Exception e) {
>                       e.printStackTrace();
>               }
>       }
>       public void setValue(String value) throws SetterThrownException {
>               throw new SetterThrownException("I want to see this in the 
> stacktrace");
>       }
>       
>       
>       class SetterThrownException extends Exception
>       {
>               
>               public SetterThrownException(String message) {
>                       super(message);
>               }
>               
>       }
> }
> {code}
> will return this stacktrace
> {code}
> java.lang.IllegalArgumentException
>       at org.apache.commons.beanutils.BeanMap.put(BeanMap.java:438)
>       at SetterTest.main(SetterTest.java:9)
> {code}
> I think it should show the root cause of the exception
> {code}
> java.lang.IllegalArgumentException: 
> java.lang.reflect.InvocationTargetException
>       at org.apache.commons.beanutils.BeanMap.put(BeanMap.java:438)
>       at SetterTest.main(SetterTest.java:11)
> Caused by: java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at org.apache.commons.beanutils.BeanMap.put(BeanMap.java:431)
>       ... 1 more
> Caused by: SetterTest$SetterThrownException: I want to see this in the 
> stacktrace
>       at SetterTest.setValue(SetterTest.java:18)
>       ... 6 more
> {code}

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

Reply via email to