You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2015/06/13 15:51:00 UTC

[jira] [Updated] (QPID-6588) HTTP Management writes JSON responses using the platform's default encoding rather than UTF-8

     [ https://issues.apache.org/jira/browse/QPID-6588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall updated QPID-6588:
-----------------------------
    Priority: Minor  (was: Major)

> HTTP Management writes JSON responses using the platform's default encoding rather than UTF-8
> ---------------------------------------------------------------------------------------------
>
>                 Key: QPID-6588
>                 URL: https://issues.apache.org/jira/browse/QPID-6588
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.18, 0.22, 0.32
>            Reporter: Keith Wall
>            Priority: Minor
>
> The HTTP Management implementation writes JSON responses using the platform's default encoding rather than an encoding Uncode meaning characters outside ASCII may be lost.  It also breaks RFC7159, which states that "JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32.  The default  encoding is UTF-8")
> The issue is that the implementation (MessageServlet, RestServlet) passes a Writer to the Jackson ObjectMapper and that Writer is an OutputStreamWriter that use the platform's default character encoding.  This effect of this is that any character that cannot be represented using the platform's default encoding will be converted to a '?'.  
> {code:java}
> final Writer writer = getOutputWriter(request,response);
> ObjectMapper mapper = new ObjectMapper();
> mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
> mapper.writeValue(writer, object);
> {code}
> The solution is to configure the OutputStreamWriter with a  UTF-8 character encoding, or more simple pass the output stream to the Jackson mapper directly. 
> [1] https://tools.ietf.org/html/rfc7159
> This problem was exposed by the new tested added to MessagesRestTest QPID-6545.  The test would pass (for the wrong reasons under Intellij), then fail on the command line (persumably owing to platform encoding default differences).
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org