You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Myles Bunbury (JIRA)" <ji...@apache.org> on 2010/06/09 21:03:14 UTC
[jira] Commented: (SYNAPSE-662) ClientWorker overriding character
encoding
[ https://issues.apache.org/jira/browse/SYNAPSE-662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877170#action_12877170 ]
Myles Bunbury commented on SYNAPSE-662:
---------------------------------------
It's worth noting that ServerWorker doesn't bother with any use of the HTTP.CHARSET_PARAM constant and isn't affected by this issue. ServerWorker relies exclusively on BuilderUtil.getCharSetEncoding(contentType). I don't see a reason why ServerWorker & ClientWorker should be different in this regard.
> ClientWorker overriding character encoding
> ------------------------------------------
>
> Key: SYNAPSE-662
> URL: https://issues.apache.org/jira/browse/SYNAPSE-662
> Project: Synapse
> Issue Type: Bug
> Affects Versions: 1.2
> Reporter: Myles Bunbury
>
> The following code exists in the org.apache.synapse.transport.nhttp.ClientWorker class' run() method:
> responseMsgCtx.setProperty(
> Constants.Configuration.CHARACTER_SET_ENCODING,
> contentType.indexOf(HTTP.CHARSET_PARAM) > 0 ?
> charSetEnc : MessageContext.DEFAULT_CHAR_SET_ENCODING);
> This fails however for the following Content-Type HTTP header:
> application/soap+xml; action="urn:echoResponse";charset=UTF-16
> BuilderUtil.getCharSetEncoding(contentType) is called a few lines up and correctly extracts the UTF-16 character set value, but then overrides this and sets it to UTF-8. It does this because the value of org.apache.http.protocol.HTTP.CHARSET_PARAM is "; charset=". That is, it's failing because the response does not have a space between the charset parameter and the previous parameter.
> Reading through the HTTP specs, I haven't come across anything that says either that whitespace is permissible or not permissible here. In my view the code should therfore be flexible enough to handle either case.
> I would suggest simpifying the code to:
> responseMsgCtx.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
> as the BuilderUtil.getCharSetEncoding() code above the offending code seems to be sufficient at first glance.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org