[jira] [Commented] (LANG-1310) MethodUtils.invokeMethod throws ArrayStoreException if using varargs arguments and smaller types than the method defines

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[jira] [Commented] (LANG-1310) MethodUtils.invokeMethod throws ArrayStoreException if using varargs arguments and smaller types than the method defines

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/LANG-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15931782#comment-15931782 ]

ASF GitHub Bot commented on LANG-1310:
--------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/commons-lang/pull/256


> MethodUtils.invokeMethod throws ArrayStoreException if using varargs arguments and smaller types than the method defines
> ------------------------------------------------------------------------------------------------------------------------
>
>                 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)
Loading...