[
https://issues.apache.org/jira/browse/LANG-1433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16772865#comment-16772865
]
Christian Franzen commented on LANG-1433:
-----------------------------------------
I have fixed the described issue. Please see pull request:
https://github.com/apache/commons-lang/pull/407
> MethodUtils will throw a NPE if invokeMethod() is called for a var-args method
> ------------------------------------------------------------------------------
>
> Key: LANG-1433
> URL: https://issues.apache.org/jira/browse/LANG-1433
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.reflect.*
> Affects Versions: 3.8.1
> Reporter: Christian Franzen
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Whenever calling a var-args method using invokeMethod() of MethodUtils it
> will throw a NPE if the last parameter value is null.
> Example: Given is the following class with var-args method
> {code:java}
> public class MyClass {
> public String myMethod(final String... args) {
> ...
> }
> public String myMethod(final Integer... args) {
> ...
> }
> }
> {code}
> The following code will work:
> {code:java}
> MethodUtils.invokeMethod(myObject, "myMethod", "a", null, "c");
> {code}
> But this will throw a NPE:
> {code:java}
> MethodUtils.invokeMethod(myObject, "myMethod", "a", "b", null);
> {code}
> Further more it is not deterministic which method of the two will be called
> if the method search of invokeMethod() can not find a single unique match. So
> the code
> {code:java}
> MethodUtils.invokeMethod(myObject, "myMethod", new Object[] {null});
> {code}
> might call any of the two methods of MyClass and it might change with each
> and every invocation. The search is not deterministic due to Class.getMethods
> () is not deterministic.
> I would categorize such a method call as a bug, due to it should not be the
> intention of the developer to just pick any of the methods. However,
> debugging such an issue is really hard if the "right" method is called
> "sometimes" and it can be solved by just doing a sort, which should be no big
> deal I belive.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)