From 71689e47576da11574f724edf289ed4a14805c6c Mon Sep 17 00:00:00 2001 From: Jano Svitok Date: Mon, 6 Aug 2018 12:51:24 +0200 Subject: [PATCH] Use StandardCharsets.UTF_8 instead of Charset.forName("utf-8); add charset where needed Application should always work with utf-8 strings regardless of locale. --- src/se/vidstige/jadb/SyncTransport.java | 4 ++-- src/se/vidstige/jadb/Transport.java | 6 +++--- src/se/vidstige/jadb/managers/PropertyManager.java | 3 ++- test/se/vidstige/jadb/test/fakes/FakeAdbServer.java | 6 +++--- test/se/vidstige/jadb/test/unit/MockedTestCases.java | 8 ++++---- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/se/vidstige/jadb/SyncTransport.java b/src/se/vidstige/jadb/SyncTransport.java index 9a36542..22787fe 100644 --- a/src/se/vidstige/jadb/SyncTransport.java +++ b/src/se/vidstige/jadb/SyncTransport.java @@ -1,7 +1,7 @@ package se.vidstige.jadb; import java.io.*; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * Created by vidstige on 2014-03-19. @@ -52,7 +52,7 @@ public class SyncTransport { public String readString(int length) throws IOException { byte[] buffer = new byte[length]; input.readFully(buffer); - return new String(buffer, Charset.forName("utf-8")); + return new String(buffer, StandardCharsets.UTF_8); } public RemoteFileRecord readDirectoryEntry() throws IOException { diff --git a/src/se/vidstige/jadb/Transport.java b/src/se/vidstige/jadb/Transport.java index 701c9de..d3a8a93 100644 --- a/src/se/vidstige/jadb/Transport.java +++ b/src/se/vidstige/jadb/Transport.java @@ -2,7 +2,7 @@ package se.vidstige.jadb; import java.io.*; import java.net.Socket; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; class Transport { @@ -44,7 +44,7 @@ class Transport { DataInput reader = new DataInputStream(inputStream); byte[] responseBuffer = new byte[length]; reader.readFully(responseBuffer); - return new String(responseBuffer, Charset.forName("utf-8")); + return new String(responseBuffer, StandardCharsets.UTF_8); } public String getCommandLength(String command) { @@ -52,7 +52,7 @@ class Transport { } public void send(String command) throws IOException { - OutputStreamWriter writer = new OutputStreamWriter(outputStream); + OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8); writer.write(getCommandLength(command)); writer.write(command); writer.flush(); diff --git a/src/se/vidstige/jadb/managers/PropertyManager.java b/src/se/vidstige/jadb/managers/PropertyManager.java index 7da7003..2dd7e89 100644 --- a/src/se/vidstige/jadb/managers/PropertyManager.java +++ b/src/se/vidstige/jadb/managers/PropertyManager.java @@ -6,6 +6,7 @@ import se.vidstige.jadb.JadbException; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -24,7 +25,7 @@ public class PropertyManager { public Map getprop() throws IOException, JadbException { try (BufferedReader bufferedReader = - new BufferedReader(new InputStreamReader(device.executeShell("getprop")))) { + new BufferedReader(new InputStreamReader(device.executeShell("getprop"), StandardCharsets.UTF_8))) { return parseProp(bufferedReader); } } diff --git a/test/se/vidstige/jadb/test/fakes/FakeAdbServer.java b/test/se/vidstige/jadb/test/fakes/FakeAdbServer.java index f5d2e2c..63ee5d1 100644 --- a/test/se/vidstige/jadb/test/fakes/FakeAdbServer.java +++ b/test/se/vidstige/jadb/test/fakes/FakeAdbServer.java @@ -11,7 +11,7 @@ import java.io.DataInput; import java.io.DataOutputStream; import java.io.IOException; import java.net.ProtocolException; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -179,7 +179,7 @@ public class FakeAdbServer implements AdbResponder { @Override public void withContent(String content) { - this.content = content.getBytes(Charset.forName("utf-8")); + this.content = content.getBytes(StandardCharsets.UTF_8); } public boolean matches(RemoteFile path) { @@ -212,7 +212,7 @@ public class FakeAdbServer implements AdbResponder { } public void returns(String stdout) { - this.stdout = stdout.getBytes(Charset.forName("utf-8")); + this.stdout = stdout.getBytes(StandardCharsets.UTF_8); } public void writeOutputTo(DataOutputStream stdout) throws IOException { diff --git a/test/se/vidstige/jadb/test/unit/MockedTestCases.java b/test/se/vidstige/jadb/test/unit/MockedTestCases.java index 9b8d58b..87d16a9 100644 --- a/test/se/vidstige/jadb/test/unit/MockedTestCases.java +++ b/test/se/vidstige/jadb/test/unit/MockedTestCases.java @@ -12,7 +12,7 @@ import se.vidstige.jadb.test.fakes.FakeAdbServer; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -72,7 +72,7 @@ public class MockedTestCases { server.add("serial-123"); server.expectPush("serial-123", new RemoteFile("/remote/path/abc.txt")).withContent("abc"); JadbDevice device = connection.getDevices().get(0); - ByteArrayInputStream fileContents = new ByteArrayInputStream("abc".getBytes()); + ByteArrayInputStream fileContents = new ByteArrayInputStream("abc".getBytes(StandardCharsets.UTF_8)); device.push(fileContents, parseDate("1981-08-25 13:37"), 0666, new RemoteFile("/remote/path/abc.txt")); } @@ -81,7 +81,7 @@ public class MockedTestCases { server.add("serial-123"); server.expectPush("serial-123", new RemoteFile("/remote/path/abc.txt")).failWith("No such directory"); JadbDevice device = connection.getDevices().get(0); - ByteArrayInputStream fileContents = new ByteArrayInputStream("abc".getBytes()); + ByteArrayInputStream fileContents = new ByteArrayInputStream("abc".getBytes(StandardCharsets.UTF_8)); device.push(fileContents, parseDate("1981-08-25 13:37"), 0666, new RemoteFile("/remote/path/abc.txt")); } @@ -92,7 +92,7 @@ public class MockedTestCases { JadbDevice device = connection.getDevices().get(0); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); device.pull(new RemoteFile("/remote/path/abc.txt"), buffer); - Assert.assertArrayEquals("foobar".getBytes(Charset.forName("utf-8")), buffer.toByteArray()); + Assert.assertArrayEquals("foobar".getBytes(StandardCharsets.UTF_8), buffer.toByteArray()); } @Test