You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/changes/changes.xml
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,7 @@ The <action> type attribute can be add,update,fix,remove.
49
49
<actionissue="LANG-1778"type="fix"dev="ggregory"due-to="wuwu2000">MethodUtils.getMatchingMethod() doesn't respect the hierarchy of methods #1414.</action>
50
50
<actiontype="fix"dev="ggregory"due-to="Gary Gregory">org.apache.commons.lang3.reflect.MethodUtils.getMethodObject(Class<?>, String, Class<?>...) now returns null instead of throwing a NullPointerException, as it does for other exception types.</action>
51
51
<actiontype="fix"dev="ggregory"due-to="Gary Gregory">Reduce spurious failures in org.apache.commons.lang3.ArrayUtilsTest methods that test ArrayUtils.shuffle() methods.</action>
52
+
<actiontype="fix"dev="ggregory"due-to="Gary Gregory">MethodUtils cannot find or invoke a public method on a public class implemented in its package-private superclass.</action>
52
53
<!-- FIX Javadoc -->
53
54
<actiontype="fix"dev="ggregory"due-to="Gary Gregory">[javadoc] General improvements.</action>
54
55
<actiontype="fix"dev="ggregory"due-to="Gary Gregory">[javadoc] Fix thrown exception documentation for org.apache.commons.lang3.reflect.MethodUtils.getMethodObject(Class<?>, String, Class<?>...).</action>
@@ -61,6 +62,7 @@ The <action> type attribute can be add,update,fix,remove.
Copy file name to clipboardExpand all lines: src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java
+19-11Lines changed: 19 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -109,31 +109,39 @@ public static Method getAccessibleMethod(final Class<?> cls, final String method
109
109
}
110
110
111
111
/**
112
-
* Gets an accessible method (that is, one that can be invoked via
113
-
* reflection) that implements the specified Method. If no such method
114
-
* can be found, return {@code null}.
112
+
* Gets an accessible method (that is, one that can be invoked via reflection) that implements the specified Method. If no such method can be found, return
113
+
* {@code null}.
115
114
*
116
115
* @param method The method that we wish to call, may be null.
* Gets an accessible method (that is, one that can be invoked via reflection) that implements the specified Method. If no such method can be found, return
124
+
* {@code null}.
125
+
*
126
+
* @param cls The implementing class, may be null.
127
+
* @param method The method that we wish to call, may be null.
* Licensed to the Apache Software Foundation (ASF) under one or more
3
+
* contributor license agreements. See the NOTICE file distributed with
4
+
* this work for additional information regarding copyright ownership.
5
+
* The ASF licenses this file to You under the Apache License, Version 2.0
6
+
* (the "License"); you may not use this file except in compliance with
7
+
* the License. You may obtain a copy of the License at
8
+
*
9
+
* https://www.apache.org/licenses/LICENSE-2.0
10
+
*
11
+
* Unless required by applicable law or agreed to in writing, software
12
+
* distributed under the License is distributed on an "AS IS" BASIS,
13
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+
* See the License for the specific language governing permissions and
15
+
* limitations under the License.
16
+
*/
17
+
18
+
packageorg.apache.commons.lang3.reflect;
19
+
20
+
/**
21
+
* This class is designed to test the default access JVM problem workaround. The issue is that public methods of a public subclass contained in a default access
22
+
* superclass are returned by reflection but an IllegalAccessException is thrown when they are invoked.
23
+
* <p>
24
+
* This is the default access superclass
25
+
* </p>
26
+
*/
27
+
classPackageBean {
28
+
29
+
privateStringbar = "This is bar";
30
+
31
+
/**
32
+
* Package private constructor, can only use factory method to create beans.
* Licensed to the Apache Software Foundation (ASF) under one or more
3
+
* contributor license agreements. See the NOTICE file distributed with
4
+
* this work for additional information regarding copyright ownership.
5
+
* The ASF licenses this file to You under the Apache License, Version 2.0
6
+
* (the "License"); you may not use this file except in compliance with
7
+
* the License. You may obtain a copy of the License at
8
+
*
9
+
* https://www.apache.org/licenses/LICENSE-2.0
10
+
*
11
+
* Unless required by applicable law or agreed to in writing, software
12
+
* distributed under the License is distributed on an "AS IS" BASIS,
13
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+
* See the License for the specific language governing permissions and
15
+
* limitations under the License.
16
+
*/
17
+
18
+
packageorg.apache.commons.lang3.reflect;
19
+
20
+
/**
21
+
* This class is designed to test the default access JVM problem workaround. The issue is that public methods of a public subclass contained in a default access
22
+
* superclass are returned by reflection but an IllegalAccessException is thrown when they are invoked.
23
+
* <p>
24
+
* This is the default access superclass
25
+
* </p>
26
+
*/
27
+
publicclassPublicSubBeanextendsPackageBean {
28
+
29
+
/**
30
+
* A directly implemented property.
31
+
*/
32
+
privateStringfoo = "This is foo";
33
+
34
+
/**
35
+
* Package private constructor, can only use factory method to create beans.
0 commit comments