azkaban-aplcache

Fixing DefaultCharset warnings in azkaban-common (#1164) *

6/5/2017 3:32:52 PM

Details

diff --git a/azkaban-common/src/main/java/azkaban/executor/JdbcExecutorLoader.java b/azkaban-common/src/main/java/azkaban/executor/JdbcExecutorLoader.java
index e7fff84..4bc8e68 100644
--- a/azkaban-common/src/main/java/azkaban/executor/JdbcExecutorLoader.java
+++ b/azkaban-common/src/main/java/azkaban/executor/JdbcExecutorLoader.java
@@ -22,6 +22,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -1190,7 +1191,7 @@ public class JdbcExecutorLoader extends AbstractJdbcLoader implements
           FileIOUtils.getUtf8Range(buffer, 0, buffer.length);
 
       return new LogData(startByte + result.getFirst(), result.getSecond(),
-          new String(buffer, result.getFirst(), result.getSecond()));
+          new String(buffer, result.getFirst(), result.getSecond(), StandardCharsets.UTF_8));
     }
   }
 
diff --git a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
index 9a88204..5683d9f 100644
--- a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
+++ b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
@@ -22,6 +22,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.lang.reflect.Field;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
@@ -98,10 +99,12 @@ public class AzkabanProcess {
       this.startupLatch.countDown();
 
       final LogGobbler outputGobbler =
-          new LogGobbler(new InputStreamReader(this.process.getInputStream()),
+          new LogGobbler(
+              new InputStreamReader(this.process.getInputStream(), StandardCharsets.UTF_8),
               this.logger, Level.INFO, 30);
       final LogGobbler errorGobbler =
-          new LogGobbler(new InputStreamReader(this.process.getErrorStream()),
+          new LogGobbler(
+              new InputStreamReader(this.process.getErrorStream(), StandardCharsets.UTF_8),
               this.logger, Level.ERROR, 30);
 
       outputGobbler.start();
diff --git a/azkaban-common/src/main/java/azkaban/storage/LocalStorage.java b/azkaban-common/src/main/java/azkaban/storage/LocalStorage.java
index dafc738..21adef5 100644
--- a/azkaban-common/src/main/java/azkaban/storage/LocalStorage.java
+++ b/azkaban-common/src/main/java/azkaban/storage/LocalStorage.java
@@ -29,6 +29,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import org.apache.commons.io.FileUtils;
 import org.apache.log4j.Logger;
 
@@ -79,7 +80,7 @@ public class LocalStorage implements Storage {
 
     final File targetFile = new File(projectDir, String.format("%s-%s.zip",
         String.valueOf(metadata.getProjectId()),
-        new String(metadata.getHash())));
+        new String(metadata.getHash(), StandardCharsets.UTF_8)));
 
     if (targetFile.exists()) {
       log.info(String.format("Duplicate found: meta: %s, targetFile: %s, ", metadata,
diff --git a/azkaban-common/src/main/java/azkaban/storage/StorageManager.java b/azkaban-common/src/main/java/azkaban/storage/StorageManager.java
index f8a6281..95cf142 100644
--- a/azkaban-common/src/main/java/azkaban/storage/StorageManager.java
+++ b/azkaban-common/src/main/java/azkaban/storage/StorageManager.java
@@ -35,6 +35,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
@@ -171,7 +172,9 @@ public class StorageManager {
     final byte[] hash = Md5Hasher.md5Hash(file);
     checkState(Arrays.equals(pfh.getMd5Hash(), hash),
         String.format("MD5 HASH Failed. project ID: %d version: %d Expected: %s Actual: %s",
-            pfh.getProjectId(), pfh.getVersion(), new String(pfh.getMd5Hash()), new String(hash))
+            pfh.getProjectId(), pfh.getVersion(),
+            new String(pfh.getMd5Hash(), StandardCharsets.UTF_8),
+            new String(hash, StandardCharsets.UTF_8))
     );
   }
 
diff --git a/azkaban-common/src/main/java/azkaban/utils/FileIOUtils.java b/azkaban-common/src/main/java/azkaban/utils/FileIOUtils.java
index c8ae211..8deb690 100644
--- a/azkaban-common/src/main/java/azkaban/utils/FileIOUtils.java
+++ b/azkaban-common/src/main/java/azkaban/utils/FileIOUtils.java
@@ -25,6 +25,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -223,7 +224,7 @@ public class FileIOUtils {
     }
     final Pair<Integer, Integer> utf8Range = getUtf8Range(buffer, 0, read);
     final String outputString =
-        new String(buffer, utf8Range.getFirst(), utf8Range.getSecond());
+        new String(buffer, utf8Range.getFirst(), utf8Range.getSecond(), StandardCharsets.UTF_8);
 
     return new LogData(fileOffset + utf8Range.getFirst(),
         utf8Range.getSecond(), outputString);
@@ -254,7 +255,7 @@ public class FileIOUtils {
     }
     final Pair<Integer, Integer> utf8Range = getUtf8Range(buffer, 0, read);
     final String outputString =
-        new String(buffer, utf8Range.getFirst(), utf8Range.getSecond());
+        new String(buffer, utf8Range.getFirst(), utf8Range.getSecond(), StandardCharsets.UTF_8);
 
     return new JobMetaData(fileOffset + utf8Range.getFirst(),
         utf8Range.getSecond(), outputString);
@@ -360,7 +361,7 @@ public class FileIOUtils {
     private final CircularBuffer<String> buffer = new CircularBuffer<>(5);
 
     public NullLogger(final InputStream stream) {
-      this.inputReader = new BufferedReader(new InputStreamReader(stream));
+      this.inputReader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
     }
 
     @Override
diff --git a/azkaban-common/src/test/java/azkaban/executor/JavaJobRunnerMain.java b/azkaban-common/src/test/java/azkaban/executor/JavaJobRunnerMain.java
index e0ef0d1..5764b3a 100644
--- a/azkaban-common/src/test/java/azkaban/executor/JavaJobRunnerMain.java
+++ b/azkaban-common/src/test/java/azkaban/executor/JavaJobRunnerMain.java
@@ -19,14 +19,15 @@ package azkaban.executor;
 import azkaban.jobExecutor.ProcessJob;
 import azkaban.utils.Props;
 import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -80,7 +81,7 @@ public class JavaJobRunnerMain {
       this._logger.addAppender(appender);
 
       final Properties prop = new Properties();
-      prop.load(new BufferedReader(new FileReader(propsFile)));
+      prop.load(Files.newBufferedReader(Paths.get(propsFile), StandardCharsets.UTF_8));
 
       this._logger.info("Running job " + this._jobName);
       final String className = prop.getProperty(JOB_CLASS);
@@ -268,13 +269,13 @@ public class JavaJobRunnerMain {
       // Manually serialize into JSON instead of adding org.json to
       // external classpath. Reduces one dependency for something that's
       // essentially easy.
-      writer.write("{\n".getBytes());
+      writer.write("{\n".getBytes(StandardCharsets.UTF_8));
       for (final Map.Entry<String, String> entry : properties.entrySet()) {
         writer.write(String.format("  \"%s\":\"%s\",\n",
             entry.getKey().replace("\"", "\\\\\""),
-            entry.getValue().replace("\"", "\\\\\"")).getBytes());
+            entry.getValue().replace("\"", "\\\\\"")).getBytes(StandardCharsets.UTF_8));
       }
-      writer.write("}".getBytes());
+      writer.write("}".getBytes(StandardCharsets.UTF_8));
     } catch (final Exception e) {
       throw new RuntimeException("Unable to store output properties to: "
           + outputFileStr);
diff --git a/azkaban-common/src/test/java/azkaban/executor/SleepJavaJob.java b/azkaban-common/src/test/java/azkaban/executor/SleepJavaJob.java
index 15a4b00..4bb2b69 100644
--- a/azkaban-common/src/test/java/azkaban/executor/SleepJavaJob.java
+++ b/azkaban-common/src/test/java/azkaban/executor/SleepJavaJob.java
@@ -16,8 +16,9 @@
 
 package azkaban.executor;
 
-import java.io.BufferedReader;
-import java.io.FileReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Map;
 import java.util.Properties;
 
@@ -42,7 +43,7 @@ public class SleepJavaJob {
   public static void main(final String[] args) throws Exception {
     final String propsFile = System.getenv("JOB_PROP_FILE");
     final Properties prop = new Properties();
-    prop.load(new BufferedReader(new FileReader(propsFile)));
+    prop.load(Files.newBufferedReader(Paths.get(propsFile), StandardCharsets.UTF_8));
 
     final String jobName = System.getenv("JOB_NAME");
     final SleepJavaJob job = new SleepJavaJob(jobName, prop);
diff --git a/azkaban-common/src/test/java/azkaban/storage/LocalStorageTest.java b/azkaban-common/src/test/java/azkaban/storage/LocalStorageTest.java
index 4e52d6c..5b9d0ff 100644
--- a/azkaban-common/src/test/java/azkaban/storage/LocalStorageTest.java
+++ b/azkaban-common/src/test/java/azkaban/storage/LocalStorageTest.java
@@ -27,6 +27,7 @@ import azkaban.spi.StorageMetadata;
 import azkaban.utils.Md5Hasher;
 import java.io.File;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import org.apache.commons.io.FileUtils;
 import org.apache.log4j.Logger;
 import org.junit.After;
@@ -72,7 +73,7 @@ public class LocalStorageTest {
         .append(File.separator)
         .append(metadata.getProjectId())
         .append("-")
-        .append(new String(metadata.getHash()))
+        .append(new String(metadata.getHash(), StandardCharsets.UTF_8))
         .append(".zip")
         .toString()
     );