Eickvonder created LANG-1310:
--------------------------------

             Summary: MethodUtils.invokeMethod throws ArrayStoreException
                 Key: LANG-1310
                 URL: https://issues.apache.org/jira/browse/LANG-1310
             Project: Commons Lang
          Issue Type: Bug
          Components: lang.reflect.*
    Affects Versions: 3.5
            Reporter: Eickvonder


Since release 3.5 and due to the changes of LANG-1115 an ArrayStoreException 
occurs on MethodUtils.invokeMethod if using varargs arguments and smaller types 
than the method defines (e.g. int vs long).

{code}
  @Test
  public void testMethodUtilsInvokeMethodVarArgs () throws Exception {
    MyObject object = new MyObject ();
    MethodUtils.invokeMethod (object, "doSomething", 1);
  }

  public static class MyObject {
    public void doSomething (long... args) {
      System.out.println ("doSomething");
    }
  }
{code}

throws 

{code}
java.lang.ArrayStoreException
        at java.lang.System.arraycopy(Native Method)
        at 
org.apache.commons.lang3.reflect.MethodUtils.getVarArgs(MethodUtils.java:497)
        at 
org.apache.commons.lang3.reflect.MethodUtils.toVarArgs(MethodUtils.java:463)
        at 
org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(MethodUtils.java:234)
        at 
org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(MethodUtils.java:270)
        at 
org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(MethodUtils.java:147)
{code}

In 3.4. a NoSuchMethodException had been thrown, but in 3.5 the code now finds 
the matching method but fails then with above exception.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to