Skip to content

Commit 214abdc

Browse files
committed
exclude static fields from POJO parsing in BeanParam
Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
1 parent 984ba24 commit 214abdc

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

ext/proxy-client/src/main/java/org/glassfish/jersey/client/proxy/RequestParameters.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.lang.annotation.Annotation;
3636
import java.lang.reflect.Field;
3737
import java.lang.reflect.InvocationTargetException;
38+
import java.lang.reflect.Modifier;
3839
import java.util.ArrayList;
3940
import java.util.Arrays;
4041
import java.util.Collection;
@@ -43,6 +44,7 @@
4344
import java.util.LinkedList;
4445
import java.util.List;
4546
import java.util.Map;
47+
import java.util.stream.Collectors;
4648

4749
/**
4850
* Collector to retrieve parameters for setting up the HTTP request sent in the invoke method of WebResourceFactory
@@ -145,7 +147,7 @@ private void addBeanParameter(final Object beanParam)
145147
throws IllegalAccessException, IntrospectionException, InvocationTargetException {
146148
Class<?> beanClass = beanParam.getClass();
147149
List<Field> fields = new ArrayList<>();
148-
getAllFields(fields, beanClass);
150+
getAllNonStaticFields(fields, beanClass);
149151

150152
for (final Field field : fields) {
151153
Object value = null;
@@ -178,11 +180,15 @@ private void addBeanParameter(final Object beanParam)
178180
}
179181
}
180182

181-
private List<Field> getAllFields(List<Field> fields, Class<?> type) {
182-
fields.addAll(Arrays.asList(type.getDeclaredFields()));
183+
private List<Field> getAllNonStaticFields(List<Field> fields, Class<?> type) {
184+
185+
List<Field> nonStaticFields = Arrays.stream(type.getDeclaredFields())
186+
.filter(field -> !Modifier.isStatic(field.getModifiers()))
187+
.collect(Collectors.toList());
188+
fields.addAll(nonStaticFields);
183189

184190
if (type.getSuperclass() != null) {
185-
getAllFields(fields, type.getSuperclass());
191+
getAllNonStaticFields(fields, type.getSuperclass());
186192
}
187193

188194
return fields;

0 commit comments

Comments
 (0)