[ 
https://issues.apache.org/jira/browse/CXF-3147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12935419#action_12935419
 ] 

Sergey Beryozkin commented on CXF-3147:
---------------------------------------

I think in the early days I was checking for null because I was lazy specifying 
the media type in tests :-), MediaType is guaranteed not to be null by the 
earlier code - but I've added the suggested guard nonetheless - thanks

> FormParam parsing fails when no content-type is provided
> --------------------------------------------------------
>
>                 Key: CXF-3147
>                 URL: https://issues.apache.org/jira/browse/CXF-3147
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.3.0
>            Reporter: Dobes Vandermeer
>            Priority: Trivial
>
> Ran into this writing unit tests - if no Content-Type is provided when doing 
> a POST, some code handles a null media type and some doesn't:
> In org.apache.cxf.jaxrs.utils.JAXRSUtils.processFormParam(Message, String, 
> Class<?>, Type, String, boolean) it treats a null media type as if it was the 
> same as the form media type:
> if (mt == null || mt.isCompatible(MediaType.APPLICATION_FORM_URLENCODED_TYPE))
> However, when reading the body of the form fields, it calls getCharset(mt) to 
> get the character set to use when decoding the form fields, which doesn't 
> check for null and thus throws an error.
> Either the null media type should fall through and return an error (wrong 
> content type) or it should be handled.
> Suggested fix: In org.apache.cxf.jaxrs.utils.FormUtils.getCharset(MediaType), 
> add if(mt == null) return "UTF-8"; to the start of the method.
> Easy workaround: only use clients that provide a content type for form field 
> POSTs

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to