Uploaded image for project: 'Commons BeanUtils'
  1. Commons BeanUtils
  2. BEANUTILS-380

BeanMap methods should initialize the root cause of exceptions that are thrown when running on JDK 1.4+

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.3
    • Fix Version/s: 1.8.4
    • Component/s: Bean-Collections
    • Labels:
      None

      Description

      The following 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);
      		}
      		
      	}
      
      }
      

      will return this stacktrace

      java.lang.IllegalArgumentException
      	at org.apache.commons.beanutils.BeanMap.put(BeanMap.java:438)
      	at SetterTest.main(SetterTest.java:9)
      

      I think it should show the root cause of the exception

      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
      

        Attachments

          Activity

            People

            • Assignee:
              niallp Niall Pemberton
              Reporter:
              brendan.nolan Brendan Nolan

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment