[
http://issues.apache.org/jira/browse/COCOON-1625?page=comments#action_12413702
]
aleksander.bandelj commented on COCOON-1625:
--------------------------------------------
In HttpRequest.java located
cocoon 2.0:
core/cocoon-core/src/main/java/org/apache/cocoon/environment/http/HttpRequest.java
cocoon: 2.1: src/java/org/apache/cocoon/environment/http/HttpRequest.java
Proposed new getParameter method is:
public String getParameter(String name) {
String value = this.req.getParameter(name);
if (this.form_encoding == null || this.container_encoding == null ||
value == null) {
return value;
}
// form and container encoding are equal, skip expensive value decoding
// XXX: maybe toUpperCase could be optimized away
if(this.container_encoding.toUpperCase().equals(this.form_encoding.toUpperCase()))
{
return value;
}
return decode(value);
}
Current method calls decode() and copies parameter value string:
public String getParameter(String name) {
String value = this.req.getParameter(name);
if (this.form_encoding == null || value == null) {
return value;
}
return decode(value);
}
private String decode(String str) {
if (str == null) return null;
try {
if (this.container_encoding == null)
this.container_encoding = "ISO-8859-1";
byte[] bytes = str.getBytes(this.container_encoding);
return new String(bytes, form_encoding);
} catch (java.io.UnsupportedEncodingException uee) {
throw new RequestEncodingException("Unsupported Encoding
Exception", uee);
}
}
> redundant copying between container and form encoding
> -----------------------------------------------------
>
> Key: COCOON-1625
> URL: http://issues.apache.org/jira/browse/COCOON-1625
> Project: Cocoon
> Type: Bug
> Components: * Cocoon Core
> Versions: 2.1.7
> Environment: Operating System: other
> Platform: Other
> Reporter: aleksander.bandelj
> Assignee: Cocoon Developers Team
>
> Even if container and form encoding are the same, String is still copied. It
> would be nice to avoid this performance penalty by adding a check in
> HttpRequestClass.decode().
> Background: e use servlet filter which sets characterEncoding of
> ServletHttpRequest in front of cocoon, so form re-encoding by cocoon is not
> needed. Most natural way to skip it would be to set same default encodings in
> Cocoon servlet parameters.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira