[
https://issues.apache.org/jira/browse/CMIS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ron Gavlin updated CMIS-844:
----------------------------
Description:
POSTHttpServletRequestWrapper should accommodate prior consumption of the
request body by a filter.
The 0.7.0 release provided this accommodation. This appears to have been broken
by the major post-0.7.0 refactoring.
The following POSTHttpServletRequestWrapper constructor modification fixes the
problem:
{code}
...
if (isMultipart) {
...
} else {
// form data processing
StringBuilder sb = new StringBuilder();
InputStreamReader sr = new
InputStreamReader(request.getInputStream(), IOUtils.UTF8);
char[] buffer = new char[4096];
int c = 0;
while ((c = sr.read(buffer)) > -1) {
sb.append(buffer, 0, c);
}
if (sb.length() < 3) {
@SuppressWarnings("unchecked")
Map<String, String[]> parameterMap = request.getParameterMap();
getParameterMap().putAll(parameterMap);
} else {
parseFormData(sb.toString());
}
}
...
{code}
was:
POSTHttpServletRequestWrapper should accommodate prior consumption of request
body by a filter.
The POSTHttpServletRequestWrapper constructor should be modified as follows:
{code}
...
if (isMultipart) {
...
} else {
// form data processing
StringBuilder sb = new StringBuilder();
InputStreamReader sr = new
InputStreamReader(request.getInputStream(), IOUtils.UTF8);
char[] buffer = new char[4096];
int c = 0;
while ((c = sr.read(buffer)) > -1) {
sb.append(buffer, 0, c);
}
if (sb.length() < 3) {
getParameterMap().putAll(request.getParameterMap());
} else {
parseFormData(sb.toString());
}
}
...
{code}
Issue Type: Bug (was: Improvement)
> POSTHttpServletRequestWrapper should accommodate prior consumption of request
> body by a filter
> ----------------------------------------------------------------------------------------------
>
> Key: CMIS-844
> URL: https://issues.apache.org/jira/browse/CMIS-844
> Project: Chemistry
> Issue Type: Bug
> Components: opencmis-server
> Affects Versions: OpenCMIS 0.12.0
> Reporter: Ron Gavlin
> Assignee: Florian Müller
>
> POSTHttpServletRequestWrapper should accommodate prior consumption of the
> request body by a filter.
> The 0.7.0 release provided this accommodation. This appears to have been
> broken by the major post-0.7.0 refactoring.
> The following POSTHttpServletRequestWrapper constructor modification fixes
> the problem:
> {code}
> ...
> if (isMultipart) {
> ...
> } else {
> // form data processing
> StringBuilder sb = new StringBuilder();
> InputStreamReader sr = new
> InputStreamReader(request.getInputStream(), IOUtils.UTF8);
> char[] buffer = new char[4096];
> int c = 0;
> while ((c = sr.read(buffer)) > -1) {
> sb.append(buffer, 0, c);
> }
> if (sb.length() < 3) {
> @SuppressWarnings("unchecked")
> Map<String, String[]> parameterMap =
> request.getParameterMap();
> getParameterMap().putAll(parameterMap);
> } else {
> parseFormData(sb.toString());
> }
> }
> ...
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)