Subject: [PATCH] use only non-static fields in bean param --- Index: ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java b/ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java --- a/ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java (revision c12c0dddbd5ab89adf574fe40fd1698b67150581) +++ b/ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java (date 1710259105084) @@ -35,6 +35,7 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -43,6 +44,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * Collector to retrieve parameters for setting up the HTTP request sent in the invoke method of WebResourceFactory @@ -145,7 +147,7 @@ throws IllegalAccessException, IntrospectionException, InvocationTargetException { Class beanClass = beanParam.getClass(); List fields = new ArrayList<>(); - getAllFields(fields, beanClass); + getAllNonStaticFields(fields, beanClass); for (final Field field : fields) { Object value = null; @@ -178,11 +180,15 @@ } } - private List getAllFields(List fields, Class type) { - fields.addAll(Arrays.asList(type.getDeclaredFields())); + private List getAllNonStaticFields(List fields, Class type) { + + List nonStaticFields = Arrays.stream(type.getDeclaredFields()) + .filter(field -> !Modifier.isStatic(field.getModifiers())) + .collect(Collectors.toList()); + fields.addAll(nonStaticFields); if (type.getSuperclass() != null) { - getAllFields(fields, type.getSuperclass()); + getAllNonStaticFields(fields, type.getSuperclass()); } return fields;