[
https://issues.apache.org/jira/browse/CXF-5995?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Beryozkin resolved CXF-5995.
-----------------------------------
Resolution: Fixed
Fix Version/s: 3.1.0
3.0.2
2.7.13
Assignee: Sergey Beryozkin
thanks for debugging it
> ClientProxyImpl problem with handling @BeanParams with null headers/cookies.
> ----------------------------------------------------------------------------
>
> Key: CXF-5995
> URL: https://issues.apache.org/jira/browse/CXF-5995
> Project: CXF
> Issue Type: Bug
> Affects Versions: 3.0.0, 3.0.1
> Reporter: MichaĆ P
> Assignee: Sergey Beryozkin
> Fix For: 2.7.13, 3.0.2, 3.1.0
>
>
> Problem occures when my @BeanParam object has String @HeaderParam values that
> are null.
> On client side inside ClientProxyImpl#getValuesFromBeanParam always returns
> full Map<String, BeanPair> even when BeanPair has null values.
> {code:title=ClientProxyImpl.java|borderStyle=solid}
> // line 481
> String propertyName = m.getName().substring(3);
> Method getter = bean.getClass().getMethod("get" + propertyName, new
> Class[]{});
> // Object value is null
> Object value = getter.invoke(bean, new Object[]{});
> String annotationValue = AnnotationUtils.getAnnotationValue(annotation);
> values.put(annotationValue, new BeanPair(value,
> m.getParameterAnnotations()[0]));
> {code}
> Methods such handleHeaders, handleCookies has useless condition that is
> always true (BeanPair is never null)
> {code:title=ClientProxyImpl.java|borderStyle=solid}
> // line 585
> for (Map.Entry<String, BeanPair> entry : values.entrySet()) {
> if (entry.getValue() != null) {
> headers.add(entry.getKey(),
> convertParamValue(entry.getValue().getValue(), entry.getValue().getAnns()));
> }
> }
> {code}
> That couses unintended behaviour on server side when server receives
> BeanParam objects with fields with String value equal to "null".
> I've sent no headers but servers received header with "null" String.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)