Use UTF-8 as the standard output 15/51715/1
authorRobert Varga <rovarga@cisco.com>
Thu, 27 Oct 2016 11:37:17 +0000 (13:37 +0200)
committerJakub Toth <jatoth@cisco.com>
Sat, 11 Feb 2017 01:33:04 +0000 (02:33 +0100)
Do not rely on environment-specific encoding, but always
use UTF-8 as the target encoding.

Change-Id: I540fed7611ec66ae2aaeec3b86e21af7376208b9
Signed-off-by: Robert Varga <rovarga@cisco.com>
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfMessageToXMLEncoder.java
restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/TestUtils.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocServiceImpl.java

index 52d621dd085971591a8c88adcd1b37ebc954ac26..608f1998296f33a0bbb70b4cdf856d4b3b88d096 100644 (file)
@@ -16,6 +16,7 @@ import io.netty.handler.codec.MessageToByteEncoder;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
@@ -52,7 +53,7 @@ public class NetconfMessageToXMLEncoder extends MessageToByteEncoder<NetconfMess
 
             // Using custom BufferedWriter that does not provide newLine method as performance improvement
             // see javadoc for BufferedWriter
-            StreamResult result = new StreamResult(new BufferedWriter(new OutputStreamWriter(os)));
+            StreamResult result = new StreamResult(new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8)));
             DOMSource source = new DOMSource(msg.getDocument());
             ThreadLocalTransformers.getPrettyTransformer().transform(source, result);
         }
index 23c18f18f581cbad24e9529dff903b159fed6f43..38fc0bba1363d8c36a7d982ba6bc3d00a0a919a0 100644 (file)
@@ -19,6 +19,7 @@ import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
 import java.sql.Date;
 import java.text.ParseException;
 import java.util.HashMap;
@@ -114,10 +115,11 @@ public final class TestUtils {
             transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
             transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
 
-            transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out, "UTF-8")));
+            transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out,
+                StandardCharsets.UTF_8)));
             final byte[] charData = out.toByteArray();
-            return new String(charData, "UTF-8");
-        } catch (IOException | TransformerException e) {
+            return new String(charData, StandardCharsets.UTF_8);
+        } catch (TransformerException e) {
             final String msg = "Error during transformation of Document into String";
             LOG.error(msg, e);
             return msg;
index d50eaadac40a87b8ea921ae07157095d32e0004b..b125a68f239b6038597ed772326c36a0e0875bfc 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.netconf.sal.rest.doc.impl;
 
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.Map.Entry;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
@@ -75,7 +76,7 @@ public class ApiDocServiceImpl implements ApiDocService {
     @Override
     public synchronized Response getListOfMounts(UriInfo uriInfo) {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        try (OutputStreamWriter streamWriter = new OutputStreamWriter(baos)) {
+        try (OutputStreamWriter streamWriter = new OutputStreamWriter(baos, StandardCharsets.UTF_8)) {
             JSONWriter writer = new JSONWriter(streamWriter);
             writer.array();
             for (Entry<String, Long> entry : MountPointSwagger.getInstance()