Possible NullPointerException while processing Form Parameters
--------------------------------------------------------------
Key: CXF-3255
URL: https://issues.apache.org/jira/browse/CXF-3255
Project: CXF
Issue Type: Bug
Components: JAX-RS
Affects Versions: 2.3.1
Reporter: Andreas Sahlbach
>From the current trunk state:
----
http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
{code}
private static Object processFormParam(Message m, String key,
Class<?> pClass, Type genericType,
String defaultValue,
boolean decode) {
MessageContext mc = new MessageContextImpl(m);
MediaType mt = mc.getHttpHeaders().getMediaType();
@SuppressWarnings("unchecked")
MultivaluedMap<String, String> params = (MultivaluedMap<String,
String>)m.get(FORM_PARAM_MAP);
if (params == null) {
params = new MetadataMap<String, String>();
m.put(FORM_PARAM_MAP, params);
if (mt == null ||
mt.isCompatible(MediaType.APPLICATION_FORM_URLENCODED_TYPE)) {
String body =
(String)m.get("org.apache.cxf.jaxrs.provider.form.body");
if (body == null) {
body = FormUtils.readBody(m.getContent(InputStream.class),
mt); // <---------------- mt can be null
m.put("org.apache.cxf.jaxrs.provider.form.body", body);
}
{code}
----
http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java
{code}
public static String readBody(InputStream is, MediaType mt) {
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(is, bos, 1024);
return new String(bos.toByteArray(), getCharset(mt));
// <----------------- mt can be null (see above)
} catch (Exception ex) {
throw new WebApplicationException(ex);
}
}
private static String getCharset(MediaType mt) {
String charset = mt == null ? "UTF-8" :
mt.getParameters().get("charset"); // <----------------- NPE if mt == null
return charset == null ? "UTF-8" : charset;
}
{code}
Not sure how often it happens. But there is at least one dump user that was
able to do it and I am proud to be this user. :-)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.