]
RH Bugzilla Integration commented on GTNWSRP-346:
-------------------------------------------------
Thomas Heute <theute(a)redhat.com> changed the Status of [bug
Multipart requests are not handeled if there is no attached file
----------------------------------------------------------------
Key: GTNWSRP-346
URL:
https://issues.jboss.org/browse/GTNWSRP-346
Project: GateIn WSRP
Issue Type: Bug
Affects Versions: 2.1.7-GA, 2.2.2.Final
Reporter: Martin Weiler
Assignee: Chris Laprun
Fix For: 2.1.8-GA, 2.2.3.Final
We have html multipart form in a wsrp portlet:
{code:xml}
<form enctype="multipart/form-data" method="post" ...
{code}
with an optional input field for an attachment:
{code:xml}
<input type="file"
value="org.springframework.web.multipart.commons.CommonsMultipartFile@f3af1"
name="attachement">
{code}
The "org.gatein.wsrp.consumer.handlers.ActionHandler" handles the request
correctly and tries to create a UploadContext with the help of the WSRPTypeFactory:
{code}
UploadContext uploadContext = WSRPTypeFactory.createUploadContext(contentType,
baos.toByteArray());
{code}
The problem is, that the createUploadContext throws an exception if the byte array has a
content lenght of 0 and so the rest of the parameteres are not handled correctly:
{code}
public static UploadContext createUploadContext(String mimeType, byte[] uploadData)
{
ParameterValidation.throwIllegalArgExceptionIfNullOrEmpty(mimeType, "MIME
Type", "UploadContext");
if (uploadData == null || uploadData.length == 0)
{
throw new IllegalArgumentException("Must pass non-null, non-empty upload
data");
}
UploadContext uploadContext = new UploadContext();
uploadContext.setMimeType(mimeType);
uploadContext.setUploadData(uploadData);
return uploadContext;
}
{code}
So currently the post request with WSRP works only if really a file is attached. Without
WSRP it runs with and without an attached file.