This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 3.4.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 70ced3220f319331094448858df835f9100cb857
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Tue Apr 6 10:08:53 2021 +0100

    Avoid a possible ArrayIndexOutOfBoundsException in ClientProxyImpl
    
    (cherry picked from commit 42ddaa3041b79042e2bd75945cad191dbc294bbc)
---
 .../src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java 
b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
index 8f83be2..8937909 100644
--- 
a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
+++ 
b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
@@ -1085,8 +1085,9 @@ public class ClientProxyImpl extends AbstractClient 
implements
             Annotation[] anns = customAnns != null ? customAnns
                 : getMethodAnnotations(ori.getAnnotatedMethod(), bodyIndex);
             try {
-                if (bodyIndex != -1) {
-                    Class<?> paramClass = 
method.getParameterTypes()[bodyIndex];
+                Class<?>[] parameterTypes = method.getParameterTypes();
+                if (bodyIndex >= 0 && bodyIndex < parameterTypes.length) {
+                    Class<?> paramClass = parameterTypes[bodyIndex];
                     Class<?> bodyClass =
                         paramClass.isAssignableFrom(body.getClass()) ? 
paramClass : body.getClass();
                     Type genericType = bodyType;

Reply via email to