You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by an...@apache.org on 2018/07/02 10:08:56 UTC

oozie git commit: OOZIE-2955 [oozie-client] Fix Findbugs warnings (Jan Hentschel, kmarton via andras.piros)

Repository: oozie
Updated Branches:
  refs/heads/master f638381da -> d5b9e3690


OOZIE-2955 [oozie-client] Fix Findbugs warnings (Jan Hentschel, kmarton via andras.piros)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/d5b9e369
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/d5b9e369
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/d5b9e369

Branch: refs/heads/master
Commit: d5b9e3690de783df389818fa920cdc7d11dabe4d
Parents: f638381
Author: Andras Piros <an...@cloudera.com>
Authored: Mon Jul 2 12:07:03 2018 +0200
Committer: Andras Piros <an...@cloudera.com>
Committed: Mon Jul 2 12:07:03 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/oozie/cli/CLIParser.java    |  21 +--
 .../java/org/apache/oozie/cli/OozieCLI.java     | 143 +++++++++----------
 .../apache/oozie/client/AuthOozieClient.java    |  28 ++--
 .../org/apache/oozie/client/OozieClient.java    | 132 ++++++++---------
 .../org/apache/oozie/client/XOozieClient.java   |  44 +++---
 release-log.txt                                 |   1 +
 6 files changed, 174 insertions(+), 195 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/client/src/main/java/org/apache/oozie/cli/CLIParser.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/oozie/cli/CLIParser.java b/client/src/main/java/org/apache/oozie/cli/CLIParser.java
index bbdb803..f6b49b5 100644
--- a/client/src/main/java/org/apache/oozie/cli/CLIParser.java
+++ b/client/src/main/java/org/apache/oozie/cli/CLIParser.java
@@ -18,14 +18,17 @@
 
 package org.apache.oozie.cli;
 
+import com.google.common.base.Charsets;
 import org.apache.commons.cli.MissingOptionException;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.GnuParser;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.UnrecognizedOptionException;
 
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
 import java.util.Arrays;
 import java.util.Map;
 import java.util.LinkedHashMap;
@@ -42,9 +45,9 @@ public class CLIParser {
 
     private String cliName;
     private String[] cliHelp;
-    private Map<String, Options> commands = new LinkedHashMap<String, Options>();
-    private Map<String, Boolean> commandWithArgs = new LinkedHashMap<String, Boolean>();
-    private Map<String, String> commandsHelp = new LinkedHashMap<String, String>();
+    private Map<String, Options> commands = new LinkedHashMap<>();
+    private Map<String, Boolean> commandWithArgs = new LinkedHashMap<>();
+    private Map<String, String> commandsHelp = new LinkedHashMap<>();
 
     /**
      * Create a parser.
@@ -165,7 +168,8 @@ public class CLIParser {
      * @param commandLine the command line
      */
     public void showHelp(CommandLine commandLine) {
-        PrintWriter pw = new PrintWriter(System.out);
+        Writer writer = new OutputStreamWriter(System.out, Charsets.UTF_8);
+        PrintWriter pw = new PrintWriter(writer);
         pw.println("usage: ");
         for (String s : cliHelp) {
             pw.println(LEFT_PADDING + s);
@@ -175,7 +179,7 @@ public class CLIParser {
         Set<String> commandsToPrint = commands.keySet();
         String[] args = commandLine.getArgs();
         if (args.length > 0 && commandsToPrint.contains(args[0])) {
-            commandsToPrint = new HashSet<String>();
+            commandsToPrint = new HashSet<>();
             commandsToPrint.add(args[0]);
         }
         for (String comm : commandsToPrint) {
@@ -202,10 +206,7 @@ public class CLIParser {
 
         @Override
         protected void checkRequiredOptions() throws MissingOptionException {
-            if (ignoreMissingOption) {
-                return;
-            }
-            else {
+            if (!ignoreMissingOption) {
                 super.checkRequiredOptions();
             }
         }

http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/oozie/cli/OozieCLI.java b/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
index bc234e3..c289971 100644
--- a/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
+++ b/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
@@ -19,6 +19,7 @@
 package org.apache.oozie.cli;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Charsets;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
@@ -61,9 +62,9 @@ import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
 import java.nio.charset.StandardCharsets;
@@ -713,41 +714,42 @@ public class OozieCLI {
     }
 
     public void processCommand(CLIParser parser, CLIParser.Command command) throws Exception {
-        if (command.getName().equals(HELP_CMD)) {
-            parser.showHelp(command.getCommandLine());
-        }
-        else if (command.getName().equals(JOB_CMD)) {
-            jobCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(JOBS_CMD)) {
-            jobsCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(ADMIN_CMD)) {
-            adminCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(VERSION_CMD)) {
-            versionCommand();
-        }
-        else if (command.getName().equals(VALIDATE_CMD)) {
-            validateCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(SLA_CMD)) {
-            slaCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(PIG_CMD)) {
-            scriptLanguageCommand(command.getCommandLine(), PIG_CMD);
-        }
-        else if (command.getName().equals(HIVE_CMD)) {
-            scriptLanguageCommand(command.getCommandLine(), HIVE_CMD);
-        }
-        else if (command.getName().equals(SQOOP_CMD)) {
-            sqoopCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(INFO_CMD)) {
-            infoCommand(command.getCommandLine());
-        }
-        else if (command.getName().equals(MR_CMD)){
-            mrCommand(command.getCommandLine());
+        switch (command.getName()) {
+            case JOB_CMD:
+                jobCommand(command.getCommandLine());
+                break;
+            case JOBS_CMD:
+                jobsCommand(command.getCommandLine());
+                break;
+            case ADMIN_CMD:
+                adminCommand(command.getCommandLine());
+                break;
+            case VERSION_CMD:
+                versionCommand();
+                break;
+            case VALIDATE_CMD:
+                validateCommand(command.getCommandLine());
+                break;
+            case SLA_CMD:
+                slaCommand(command.getCommandLine());
+                break;
+            case PIG_CMD:
+                scriptLanguageCommand(command.getCommandLine(), PIG_CMD);
+                break;
+            case HIVE_CMD:
+                scriptLanguageCommand(command.getCommandLine(), HIVE_CMD);
+                break;
+            case SQOOP_CMD:
+                sqoopCommand(command.getCommandLine());
+                break;
+            case INFO_CMD:
+                infoCommand(command.getCommandLine());
+                break;
+            case MR_CMD:
+                mrCommand(command.getCommandLine());
+                break;
+            default:
+                parser.showHelp(command.getCommandLine());
         }
     }
     protected String getOozieUrl(CommandLine commandLine) {
@@ -792,10 +794,7 @@ public class OozieCLI {
             Document doc = builder.parse(is);
             return parseDocument(doc, conf);
         }
-        catch (SAXException e) {
-            throw new IOException(e);
-        }
-        catch (ParserConfigurationException e) {
+        catch (SAXException | ParserConfigurationException e) {
             throw new IOException(e);
         }
     }
@@ -857,7 +856,7 @@ public class OozieCLI {
                 throw new IOException("configuration file [" + configFile + "] not found");
             }
             if (configFile.endsWith(".properties")) {
-                conf.load(new FileReader(file));
+                conf.load(new InputStreamReader(new FileInputStream(file), Charsets.UTF_8));
             }
             else if (configFile.endsWith(".xml")) {
                 parse(new FileInputStream(configFile), conf);
@@ -881,7 +880,7 @@ public class OozieCLI {
      * @throws IOException
      */
     private boolean isConfigurationSpecified(OozieClient wc, CommandLine commandLine) throws IOException {
-        boolean isConf = false;
+        boolean isConf;
         String configFile = commandLine.getOptionValue(CONFIG_OPTION);
         if (configFile == null) {
             isConf = false;
@@ -1005,7 +1004,7 @@ public class OozieCLI {
     private void jobCommand(CommandLine commandLine) throws IOException, OozieCLIException {
         XOozieClient wc = createXOozieClient(commandLine);
 
-        List<String> options = new ArrayList<String>();
+        List<String> options = new ArrayList<>();
         for (Option option : commandLine.getOptions()) {
             options.add(option.getOpt());
         }
@@ -1058,8 +1057,8 @@ public class OozieCLI {
                 if (commandLine.getOptionValue(KILL_OPTION).contains("-C")
                         && (options.contains(DATE_OPTION) || options.contains(ACTION_OPTION))) {
                     String coordJobId = commandLine.getOptionValue(KILL_OPTION);
-                    String scope = null;
-                    String rangeType = null;
+                    String scope;
+                    String rangeType;
                     if (options.contains(DATE_OPTION) && options.contains(ACTION_OPTION)) {
                         throw new OozieCLIException("Invalid options provided for rerun: either" + DATE_OPTION + " or "
                                 + ACTION_OPTION + " expected. Don't use both at the same time.");
@@ -1133,8 +1132,8 @@ public class OozieCLI {
                 }
                 else {
                     String coordJobId = commandLine.getOptionValue(RERUN_OPTION);
-                    String scope = null;
-                    String rerunType = null;
+                    String scope;
+                    String rerunType;
                     boolean refresh = false;
                     boolean noCleanup = false;
                     boolean failed = false;
@@ -1266,22 +1265,14 @@ public class OozieCLI {
                 }
             }
             else if (options.contains(ERROR_LOG_OPTION)) {
-                PrintStream ps = System.out;
-                try {
+                try (PrintStream ps = System.out) {
                     wc.getJobErrorLog(commandLine.getOptionValue(ERROR_LOG_OPTION), ps);
                 }
-                finally {
-                    ps.close();
-                }
             }
             else if (options.contains(AUDIT_LOG_OPTION)) {
-                PrintStream ps = System.out;
-                try {
+                try (PrintStream ps = System.out) {
                     wc.getJobAuditLog(commandLine.getOptionValue(AUDIT_LOG_OPTION), ps);
                 }
-                finally {
-                    ps.close();
-                }
             }
             else if (options.contains(DEFINITION_OPTION)) {
                 System.out.println(wc.getJobDefinition(commandLine.getOptionValue(DEFINITION_OPTION)));
@@ -1728,7 +1719,7 @@ public class OozieCLI {
     private void jobsCommand(CommandLine commandLine) throws IOException, OozieCLIException {
         XOozieClient wc = createXOozieClient(commandLine);
 
-        List<String> options = new ArrayList<String>();
+        List<String> options = new ArrayList<>();
         for (Option option : commandLine.getOptions()) {
             options.add(option.getOpt());
         }
@@ -1970,13 +1961,13 @@ public class OozieCLI {
     private void adminCommand(CommandLine commandLine) throws OozieCLIException {
         XOozieClient wc = createXOozieClient(commandLine);
 
-        List<String> options = new ArrayList<String>();
+        List<String> options = new ArrayList<>();
         for (Option option : commandLine.getOptions()) {
             options.add(option.getOpt());
         }
 
         try {
-            SYSTEM_MODE status = SYSTEM_MODE.NORMAL;
+            SYSTEM_MODE status;
             if (options.contains(VERSION_OPTION)) {
                 System.out.println("Oozie server build version: " + wc.getServerBuildVersion());
             }
@@ -2023,22 +2014,22 @@ public class OozieCLI {
                 }
             }
             else if (options.contains(AVAILABLE_SERVERS_OPTION)) {
-                Map<String, String> availableOozieServers = new TreeMap<String, String>(wc.getAvailableOozieServers());
+                Map<String, String> availableOozieServers = new TreeMap<>(wc.getAvailableOozieServers());
                 for (Map.Entry<String, String> ent : availableOozieServers.entrySet()) {
                     System.out.println(ent.getKey() + " : " + ent.getValue());
                 }
             } else if (options.contains(SERVER_CONFIGURATION_OPTION)) {
-                Map<String, String> serverConfig = new TreeMap<String, String>(wc.getServerConfiguration());
+                Map<String, String> serverConfig = new TreeMap<>(wc.getServerConfiguration());
                 for (Map.Entry<String, String> ent : serverConfig.entrySet()) {
                     System.out.println(ent.getKey() + " : " + ent.getValue());
                 }
             } else if (options.contains(SERVER_OS_ENV_OPTION)) {
-                Map<String, String> osEnv = new TreeMap<String, String>(wc.getOSEnv());
+                Map<String, String> osEnv = new TreeMap<>(wc.getOSEnv());
                 for (Map.Entry<String, String> ent : osEnv.entrySet()) {
                     System.out.println(ent.getKey() + " : " + ent.getValue());
                 }
             } else if (options.contains(SERVER_JAVA_SYSTEM_PROPERTIES_OPTION)) {
-                Map<String, String> javaSysProps = new TreeMap<String, String>(wc.getJavaSystemProperties());
+                Map<String, String> javaSysProps = new TreeMap<>(wc.getJavaSystemProperties());
                 for (Map.Entry<String, String> ent : javaSysProps.entrySet()) {
                     System.out.println(ent.getKey() + " : " + ent.getValue());
                 }
@@ -2153,7 +2144,7 @@ public class OozieCLI {
             return "-";
         }
 
-        SimpleDateFormat dateFormater = null;
+        SimpleDateFormat dateFormater;
         if (verbose) {
             dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz", Locale.US);
         }
@@ -2181,7 +2172,7 @@ public class OozieCLI {
         }
         try {
             XOozieClient wc = createXOozieClient(commandLine);
-            String result = wc.validateXML(args[0].toString());
+            String result = wc.validateXML(args[0]);
             if (result == null) {
                 return;
             }
@@ -2213,7 +2204,7 @@ public class OozieCLI {
             XOozieClient wc = createXOozieClient(commandLine);
             Properties conf = getConfiguration(wc, commandLine);
             String script = commandLine.getOptionValue(SCRIPTFILE_OPTION);
-            List<String> paramsList = new ArrayList<String>();
+            List<String> paramsList = new ArrayList<>();
             if (commandLine.hasOption("P")) {
                 Properties params = commandLine.getOptionProperties("P");
                 for (String key : params.stringPropertyNames()) {
@@ -2366,27 +2357,26 @@ public class OozieCLI {
     private void printMetrics(OozieClient.Metrics metrics) {
         System.out.println("COUNTERS");
         System.out.println("--------");
-        Map<String, Long> counters = new TreeMap<String, Long>(metrics.getCounters());
+        Map<String, Long> counters = new TreeMap<>(metrics.getCounters());
         for (Map.Entry<String, Long> ent : counters.entrySet()) {
             System.out.println(ent.getKey() + " : " + ent.getValue());
         }
         System.out.println("\nGAUGES");
         System.out.println("------");
-        Map<String, Object> gauges = new TreeMap<String, Object>(metrics.getGauges());
+        Map<String, Object> gauges = new TreeMap<>(metrics.getGauges());
         for (Map.Entry<String, Object> ent : gauges.entrySet()) {
             System.out.println(ent.getKey() + " : " + ent.getValue());
         }
         System.out.println("\nTIMERS");
         System.out.println("------");
-        Map<String, OozieClient.Metrics.Timer> timers = new TreeMap<String, OozieClient.Metrics.Timer>(metrics.getTimers());
+        Map<String, OozieClient.Metrics.Timer> timers = new TreeMap<>(metrics.getTimers());
         for (Map.Entry<String, OozieClient.Metrics.Timer> ent : timers.entrySet()) {
             System.out.println(ent.getKey());
             System.out.println(ent.getValue());
         }
         System.out.println("\nHISTOGRAMS");
         System.out.println("----------");
-        Map<String, OozieClient.Metrics.Histogram> histograms =
-                new TreeMap<String, OozieClient.Metrics.Histogram>(metrics.getHistograms());
+        Map<String, OozieClient.Metrics.Histogram> histograms = new TreeMap<>(metrics.getHistograms());
         for (Map.Entry<String, OozieClient.Metrics.Histogram> ent : histograms.entrySet()) {
             System.out.println(ent.getKey());
             System.out.println(ent.getValue());
@@ -2396,26 +2386,25 @@ public class OozieCLI {
     private void printInstrumentation(OozieClient.Instrumentation instrumentation) {
         System.out.println("COUNTERS");
         System.out.println("--------");
-        Map<String, Long> counters = new TreeMap<String, Long>(instrumentation.getCounters());
+        Map<String, Long> counters = new TreeMap<>(instrumentation.getCounters());
         for (Map.Entry<String, Long> ent : counters.entrySet()) {
             System.out.println(ent.getKey() + " : " + ent.getValue());
         }
         System.out.println("\nVARIABLES");
         System.out.println("---------");
-        Map<String, Object> variables = new TreeMap<String, Object>(instrumentation.getVariables());
+        Map<String, Object> variables = new TreeMap<>(instrumentation.getVariables());
         for (Map.Entry<String, Object> ent : variables.entrySet()) {
             System.out.println(ent.getKey() + " : " + ent.getValue());
         }
         System.out.println("\nSAMPLERS");
         System.out.println("---------");
-        Map<String, Double> samplers = new TreeMap<String, Double>(instrumentation.getSamplers());
+        Map<String, Double> samplers = new TreeMap<>(instrumentation.getSamplers());
         for (Map.Entry<String, Double> ent : samplers.entrySet()) {
             System.out.println(ent.getKey() + " : " + ent.getValue());
         }
         System.out.println("\nTIMERS");
         System.out.println("---------");
-        Map<String, OozieClient.Instrumentation.Timer> timers =
-                new TreeMap<String, OozieClient.Instrumentation.Timer>(instrumentation.getTimers());
+        Map<String, OozieClient.Instrumentation.Timer> timers = new TreeMap<>(instrumentation.getTimers());
         for (Map.Entry<String, OozieClient.Instrumentation.Timer> ent : timers.entrySet()) {
             System.out.println(ent.getKey());
             System.out.println(ent.getValue());

http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/client/src/main/java/org/apache/oozie/client/AuthOozieClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/oozie/client/AuthOozieClient.java b/client/src/main/java/org/apache/oozie/client/AuthOozieClient.java
index 98f421f..3a8b5ab 100644
--- a/client/src/main/java/org/apache/oozie/client/AuthOozieClient.java
+++ b/client/src/main/java/org/apache/oozie/client/AuthOozieClient.java
@@ -20,9 +20,11 @@ package org.apache.oozie.client;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.lang.management.ManagementFactory;
 import java.net.HttpURLConnection;
@@ -32,6 +34,7 @@ import java.nio.file.StandardCopyOption;
 import java.util.HashMap;
 import java.util.Map;
 
+import com.google.common.base.Charsets;
 import org.apache.hadoop.security.authentication.client.AuthenticatedURL;
 import org.apache.hadoop.security.authentication.client.AuthenticationException;
 import org.apache.hadoop.security.authentication.client.Authenticator;
@@ -61,7 +64,7 @@ public class AuthOozieClient extends XOozieClient {
      */
     public static final File AUTH_TOKEN_CACHE_FILE = new File(System.getProperty("user.home"), ".oozie-auth-token");
 
-    public static enum AuthType {
+    public enum AuthType {
         KERBEROS, SIMPLE
     }
 
@@ -107,7 +110,7 @@ public class AuthOozieClient extends XOozieClient {
     protected HttpURLConnection createConnection(URL url, String method) throws IOException, OozieClientException {
         boolean useAuthFile = System.getProperty(USE_AUTH_TOKEN_CACHE_SYS_PROP, "false").equalsIgnoreCase("true");
         AuthenticatedURL.Token readToken = null;
-        AuthenticatedURL.Token currentToken = null;
+        AuthenticatedURL.Token currentToken;
 
         // Read the token in from the file
         if (useAuthFile) {
@@ -215,7 +218,8 @@ public class AuthOozieClient extends XOozieClient {
         AuthenticatedURL.Token authToken = null;
         if (AUTH_TOKEN_CACHE_FILE.exists()) {
             try {
-                BufferedReader reader = new BufferedReader(new FileReader(AUTH_TOKEN_CACHE_FILE));
+                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(AUTH_TOKEN_CACHE_FILE),
+                        Charsets.UTF_8));
                 String line = reader.readLine();
                 reader.close();
                 if (line != null) {
@@ -245,7 +249,7 @@ public class AuthOozieClient extends XOozieClient {
                     new File(System.getProperty("user.home")));
             // just to be safe, if something goes wrong delete tmp file eventually
             tmpTokenFile.deleteOnExit();
-            Writer writer = new FileWriter(tmpTokenFile);
+            Writer writer = new OutputStreamWriter(new FileOutputStream(tmpTokenFile), Charsets.UTF_8);
             writer.write(authToken.toString());
             writer.close();
             Files.move(tmpTokenFile.toPath(), AUTH_TOKEN_CACHE_FILE.toPath(), StandardCopyOption.ATOMIC_MOVE);
@@ -292,12 +296,7 @@ public class AuthOozieClient extends XOozieClient {
                         "Invalid options provided for auth: " + authOption
                         + ", (" + AuthType.KERBEROS + " or " + AuthType.SIMPLE + " expected.)");
             }
-            catch (InstantiationException ex) {
-                throw new OozieClientException(OozieClientException.AUTHENTICATION,
-                        "Could not instantiate Authenticator for option [" + authOption + "], " +
-                        ex.getMessage(), ex);
-            }
-            catch (IllegalAccessException ex) {
+            catch (InstantiationException | IllegalAccessException ex) {
                 throw new OozieClientException(OozieClientException.AUTHENTICATION,
                         "Could not instantiate Authenticator for option [" + authOption + "], " +
                         ex.getMessage(), ex);
@@ -309,7 +308,7 @@ public class AuthOozieClient extends XOozieClient {
         if (className != null) {
             try {
                 ClassLoader cl = Thread.currentThread().getContextClassLoader();
-                Class<? extends Object> klass = (cl != null) ? cl.loadClass(className) :
+                Class<?> klass = (cl != null) ? cl.loadClass(className) :
                     getClass().getClassLoader().loadClass(className);
                 if (klass == null) {
                     throw new OozieClientException(OozieClientException.AUTHENTICATION,
@@ -339,7 +338,7 @@ public class AuthOozieClient extends XOozieClient {
      * @return the map for classes of Authenticator
      */
     protected Map<String, Class<? extends Authenticator>> getAuthenticators() {
-        Map<String, Class<? extends Authenticator>> authClasses = new HashMap<String, Class<? extends Authenticator>>();
+        Map<String, Class<? extends Authenticator>> authClasses = new HashMap<>();
         authClasses.put(AuthType.KERBEROS.toString(), KerberosAuthenticator.class);
         authClasses.put(AuthType.SIMPLE.toString(), PseudoAuthenticator.class);
         authClasses.put(null, KerberosAuthenticator.class);
@@ -354,5 +353,4 @@ public class AuthOozieClient extends XOozieClient {
     public String getAuthOption() {
         return authOption;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/client/src/main/java/org/apache/oozie/client/OozieClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/oozie/client/OozieClient.java b/client/src/main/java/org/apache/oozie/client/OozieClient.java
index 2cc1692..949b453 100644
--- a/client/src/main/java/org/apache/oozie/client/OozieClient.java
+++ b/client/src/main/java/org/apache/oozie/client/OozieClient.java
@@ -20,10 +20,9 @@ package org.apache.oozie.client;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Charsets;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.commons.io.IOUtils;
-import com.google.common.collect.Lists;
 import org.apache.oozie.BuildInfo;
 import org.apache.oozie.cli.ValidationUtil;
 import org.apache.oozie.client.rest.JsonTags;
@@ -54,7 +53,6 @@ import java.io.Reader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -213,7 +211,7 @@ public class OozieClient {
         }
     }
 
-    public static enum SYSTEM_MODE {
+    public enum SYSTEM_MODE {
         NORMAL, NOWEBSERVICE, SAFEMODE
     }
 
@@ -244,7 +242,6 @@ public class OozieClient {
 
     private int retryCount = 4;
 
-
     private String baseUrl;
     private String protocolUrl;
     private boolean validatedVersion = false;
@@ -414,7 +411,7 @@ public class OozieClient {
         HttpURLConnection conn = createRetryableConnection(url, "GET");
 
         if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
-            versions = (JSONArray) JSONValue.parse(new InputStreamReader(conn.getInputStream()));
+            versions = (JSONArray) JSONValue.parse(new InputStreamReader(conn.getInputStream(), Charsets.UTF_8));
         }
         else {
             handleError(conn);
@@ -498,8 +495,8 @@ public class OozieClient {
             String separator = "?";
             for (Map.Entry<String, String> param : parameters.entrySet()) {
                 if (param.getValue() != null) {
-                    sb.append(separator).append(URLEncoder.encode(param.getKey(), "UTF-8")).append("=").append(
-                            URLEncoder.encode(param.getValue(), "UTF-8"));
+                    sb.append(separator).append(URLEncoder.encode(param.getKey(), Charsets.UTF_8.name())).append("=").append(
+                            URLEncoder.encode(param.getValue(), Charsets.UTF_8.name()));
                     separator = "&";
                 }
             }
@@ -529,8 +526,7 @@ public class OozieClient {
         return (HttpURLConnection) new ConnectionRetriableClient(getRetryCount()) {
             @Override
             public Object doExecute(URL url, String method) throws IOException, OozieClientException {
-                HttpURLConnection conn = createConnection(url, method);
-                return conn;
+                return createConnection(url, method);
             }
         }.execute(url, method);
     }
@@ -608,7 +604,7 @@ public class OozieClient {
         @Override
         protected Map<String, String> call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 Map<String, String> map = new HashMap<>();
                 for (Object key : json.keySet()) {
@@ -731,7 +727,7 @@ public class OozieClient {
             writeToXml(conf, conn.getOutputStream());
 
             if (conn.getResponseCode() == HttpURLConnection.HTTP_CREATED) {
-                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream()));
+                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream(), Charsets.UTF_8));
                 return (String) json.get(JsonTags.JOB_ID);
             }
 
@@ -792,9 +788,8 @@ public class OozieClient {
         protected JSONObject call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
-                JSONObject json = (JSONObject) JSONValue.parse(reader);
-                return json;
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
+                return (JSONObject) JSONValue.parse(reader);
             }
             else {
                 handleError(conn);
@@ -853,7 +848,7 @@ public class OozieClient {
             writeToXml(conf, conn.getOutputStream());
 
             if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
-                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream()));
+                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream(), Charsets.UTF_8));
                 JSONObject update = (JSONObject) json.get(JsonTags.COORD_UPDATE);
                 if (update != null) {
                     return (String) update.get(JsonTags.COORD_UPDATE_DIFF);
@@ -1012,7 +1007,7 @@ public class OozieClient {
         @Override
         protected WorkflowJob call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createWorkflowJob(json);
             }
@@ -1031,7 +1026,7 @@ public class OozieClient {
 
         protected JMSConnectionInfo call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createJMSConnectionInfo(json);
             }
@@ -1051,7 +1046,7 @@ public class OozieClient {
         @Override
         protected WorkflowAction call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createWorkflowAction(json);
             }
@@ -1072,7 +1067,7 @@ public class OozieClient {
         protected List<Map<String, String>> call(HttpURLConnection conn)
                 throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return new ObjectMapper().readValue(json.get(JsonTags.WORKFLOW_ACTION_RETRIES).toString(),
                         new TypeReference<List<Map<String, String>>>() {
@@ -1244,7 +1239,7 @@ public class OozieClient {
 
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return (String) json.get(JsonTags.JMS_TOPIC_NAME);
             }
@@ -1308,7 +1303,7 @@ public class OozieClient {
         @SuppressWarnings("unchecked")
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8);
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 if (json != null) {
                     JSONArray inputDependencies = (JSONArray) json.get(JsonTags.COORD_ACTION_MISSING_DEPENDENCIES);
@@ -1338,9 +1333,8 @@ public class OozieClient {
                                 printStream.println("Pending Dependencies : ");
 
                                 if (inputDependenciesList != null) {
-                                    Iterator<String> iterator = inputDependenciesList.iterator();
-                                    while (iterator.hasNext()) {
-                                        printStream.println("\t  " + iterator.next());
+                                    for (String anInputDependenciesList : (Iterable<String>) inputDependenciesList) {
+                                        printStream.println("\t  " + anInputDependenciesList);
                                     }
                                 }
                                 printStream.println();
@@ -1394,18 +1388,13 @@ public class OozieClient {
             String returnVal = null;
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
                 InputStream is = conn.getInputStream();
-                InputStreamReader isr = new InputStreamReader(is);
-                try {
+                try (InputStreamReader isr = new InputStreamReader(is, Charsets.UTF_8)) {
                     if (printStream != null) {
                         sendToOutputStream(isr, -1, printStream);
-                    }
-                    else {
+                    } else {
                         returnVal = getReaderAsString(isr, -1);
                     }
                 }
-                finally {
-                    isr.close();
-                }
             }
             else {
                 handleError(conn);
@@ -1482,7 +1471,7 @@ public class OozieClient {
         @Override
         protected CoordinatorJob call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createCoordinatorJob(json);
             }
@@ -1503,7 +1492,7 @@ public class OozieClient {
         @Override
         protected List<WorkflowJob> call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray workflows = (JSONArray) json.get(JsonTags.WORKFLOWS_JOBS);
                 if (workflows == null) {
@@ -1529,7 +1518,7 @@ public class OozieClient {
         @Override
         protected BundleJob call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createBundleJob(json);
             }
@@ -1549,7 +1538,7 @@ public class OozieClient {
         @Override
         protected CoordinatorAction call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return JsonToBean.createCoordinatorAction(json);
             }
@@ -1640,7 +1629,7 @@ public class OozieClient {
         protected List<WorkflowJob> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray workflows = (JSONArray) json.get(JsonTags.WORKFLOWS_JOBS);
                 if (workflows == null) {
@@ -1667,7 +1656,7 @@ public class OozieClient {
         protected List<CoordinatorJob> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray jobs = (JSONArray) json.get(JsonTags.COORDINATOR_JOBS);
                 if (jobs == null) {
@@ -1694,7 +1683,7 @@ public class OozieClient {
         protected List<BundleJob> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray jobs = (JSONArray) json.get(JsonTags.BUNDLE_JOBS);
                 if (jobs == null) {
@@ -1720,7 +1709,7 @@ public class OozieClient {
         protected List<BulkResponse> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray results = (JSONArray) json.get(JsonTags.BULK_RESPONSES);
                 if (results == null) {
@@ -1747,7 +1736,7 @@ public class OozieClient {
         protected List<CoordinatorAction> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray coordActions = (JSONArray) json.get(JsonTags.COORDINATOR_ACTIONS);
                 return JsonToBean.createCoordinatorActionList(coordActions);
@@ -1770,7 +1759,7 @@ public class OozieClient {
         protected List<CoordinatorAction> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 if(json != null) {
                     JSONArray coordActions = (JSONArray) json.get(JsonTags.COORDINATOR_ACTIONS);
@@ -1800,7 +1789,7 @@ public class OozieClient {
         protected List<CoordinatorAction> call(HttpURLConnection conn) throws IOException, OozieClientException {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 JSONArray coordActions = (JSONArray) json.get(JsonTags.COORDINATOR_ACTIONS);
                 return JsonToBean.createCoordinatorActionList(coordActions);
@@ -2015,9 +2004,7 @@ public class OozieClient {
      */
     protected String mapToString(Map<String, String> map) {
         StringBuilder sb = new StringBuilder();
-        Iterator<Entry<String, String>> it = map.entrySet().iterator();
-        while (it.hasNext()) {
-            Entry<String, String> e = (Entry<String, String>) it.next();
+        for (Entry<String, String> e : map.entrySet()) {
             sb.append(e.getKey()).append("=").append(e.getValue()).append(";");
         }
         return sb.toString();
@@ -2074,8 +2061,8 @@ public class OozieClient {
             protected Void call(HttpURLConnection conn) throws IOException, OozieClientException {
                 conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
                 if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
-                    String line = null;
+                    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), Charsets.UTF_8));
+                    String line;
                     while ((line = br.readLine()) != null) {
                         System.out.println(line);
                     }
@@ -2097,7 +2084,7 @@ public class OozieClient {
         @Override
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return (String) json.get(JsonTags.JOB_ID);
             }
@@ -2157,7 +2144,7 @@ public class OozieClient {
         @Override
         protected SYSTEM_MODE call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return SYSTEM_MODE.valueOf((String) json.get(JsonTags.OOZIE_SYSTEM_MODE));
             }
@@ -2199,7 +2186,7 @@ public class OozieClient {
         @Override
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return json.get(JsonTags.BUILD_INFO).toString();
             }
@@ -2226,13 +2213,13 @@ public class OozieClient {
             if (file.startsWith("/")) {
                 FileInputStream fi = new FileInputStream(new File(file));
                 byte[] buffer = new byte[1024];
-                int n = 0;
+                int n;
                 while (-1 != (n = fi.read(buffer))) {
                     conn.getOutputStream().write(buffer, 0, n);
                 }
             }
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return (String) json.get(JsonTags.VALIDATE);
             }
@@ -2273,8 +2260,8 @@ public class OozieClient {
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             StringBuffer bf = new StringBuffer();
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
-                Object sharelib = (Object) JSONValue.parse(reader);
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
+                Object sharelib = JSONValue.parse(reader);
                 bf.append("[ShareLib update status]").append(System.getProperty("line.separator"));
                 if (sharelib instanceof JSONArray) {
                     for (Object o : ((JSONArray) sharelib)) {
@@ -2315,7 +2302,7 @@ public class OozieClient {
 
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
                 StringBuffer bf = new StringBuffer();
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 Object sharelib = json.get(JsonTags.SHARELIB_LIB);
                 bf.append("[Available ShareLib]").append(System.getProperty("line.separator"));
@@ -2398,7 +2385,7 @@ public class OozieClient {
         @Override
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
-                Reader reader = new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8);
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject jsonObject = (JSONObject) JSONValue.parse(reader);
                 Object msg = jsonObject.get(JsonTags.PURGE);
                 return msg.toString();
@@ -2559,7 +2546,7 @@ public class OozieClient {
         @Override
         protected String call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
                 return (String) json.get(JsonTags.STATUS);
             }
@@ -2582,7 +2569,7 @@ public class OozieClient {
                 return null;
             }
 
-            Reader reader = new InputStreamReader(conn.getInputStream());
+            Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
             JSONObject json = (JSONObject) JSONValue.parse(reader);
             List<String> queueDumpMessages = Lists.newArrayList();
 
@@ -2724,10 +2711,9 @@ public class OozieClient {
         @Override
         protected Metrics call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
-                Metrics metrics = new Metrics(json);
-                return metrics;
+                return new Metrics(json);
             }
             else if ((conn.getResponseCode() == HttpURLConnection.HTTP_UNAVAILABLE)) {
                 // Use Instrumentation endpoint
@@ -2749,28 +2735,28 @@ public class OozieClient {
         @SuppressWarnings("unchecked")
         public Metrics(JSONObject json) {
             JSONObject jCounters = (JSONObject) json.get("counters");
-            counters = new HashMap<String, Long>(jCounters.size());
+            counters = new HashMap<>(jCounters.size());
             for (Object entO : jCounters.entrySet()) {
                 Entry<String, JSONObject> ent = (Entry<String, JSONObject>) entO;
                 counters.put(ent.getKey(), (Long)ent.getValue().get("count"));
             }
 
             JSONObject jGuages = (JSONObject) json.get("gauges");
-            gauges = new HashMap<String, Object>(jGuages.size());
+            gauges = new HashMap<>(jGuages.size());
             for (Object entO : jGuages.entrySet()) {
                 Entry<String, JSONObject> ent = (Entry<String, JSONObject>) entO;
                 gauges.put(ent.getKey(), ent.getValue().get("value"));
             }
 
             JSONObject jTimers = (JSONObject) json.get("timers");
-            timers = new HashMap<String, Timer>(jTimers.size());
+            timers = new HashMap<>(jTimers.size());
             for (Object entO : jTimers.entrySet()) {
                 Entry<String, JSONObject> ent = (Entry<String, JSONObject>) entO;
                 timers.put(ent.getKey(), new Timer(ent.getValue()));
             }
 
             JSONObject jHistograms = (JSONObject) json.get("histograms");
-            histograms = new HashMap<String, Histogram>(jHistograms.size());
+            histograms = new HashMap<>(jHistograms.size());
             for (Object entO : jHistograms.entrySet()) {
                 Entry<String, JSONObject> ent = (Entry<String, JSONObject>) entO;
                 histograms.put(ent.getKey(), new Histogram(ent.getValue()));
@@ -2957,10 +2943,9 @@ public class OozieClient {
         @Override
         protected Instrumentation call(HttpURLConnection conn) throws IOException, OozieClientException {
             if ((conn.getResponseCode() == HttpURLConnection.HTTP_OK)) {
-                Reader reader = new InputStreamReader(conn.getInputStream());
+                Reader reader = new InputStreamReader(conn.getInputStream(), Charsets.UTF_8);
                 JSONObject json = (JSONObject) JSONValue.parse(reader);
-                Instrumentation instrumentation = new Instrumentation(json);
-                return instrumentation;
+                return new Instrumentation(json);
             }
             else if ((conn.getResponseCode() == HttpURLConnection.HTTP_UNAVAILABLE)) {
                 // Use Metrics endpoint
@@ -2981,7 +2966,7 @@ public class OozieClient {
 
         public Instrumentation(JSONObject json) {
             JSONArray jCounters = (JSONArray) json.get("counters");
-            counters = new HashMap<String, Long>(jCounters.size());
+            counters = new HashMap<>(jCounters.size());
             for (Object groupO : jCounters) {
                 JSONObject group = (JSONObject) groupO;
                 String groupName = group.get("group").toString() + ".";
@@ -2993,7 +2978,7 @@ public class OozieClient {
             }
 
             JSONArray jVariables = (JSONArray) json.get("variables");
-            variables = new HashMap<String, Object>(jVariables.size());
+            variables = new HashMap<>(jVariables.size());
             for (Object groupO : jVariables) {
                 JSONObject group = (JSONObject) groupO;
                 String groupName = group.get("group").toString() + ".";
@@ -3005,7 +2990,7 @@ public class OozieClient {
             }
 
             JSONArray jSamplers = (JSONArray) json.get("samplers");
-            samplers = new HashMap<String, Double>(jSamplers.size());
+            samplers = new HashMap<>(jSamplers.size());
             for (Object groupO : jSamplers) {
                 JSONObject group = (JSONObject) groupO;
                 String groupName = group.get("group").toString() + ".";
@@ -3017,7 +3002,7 @@ public class OozieClient {
             }
 
             JSONArray jTimers = (JSONArray) json.get("timers");
-            timers = new HashMap<String, Timer>(jTimers.size());
+            timers = new HashMap<>(jTimers.size());
             for (Object groupO : jTimers) {
                 JSONObject group = (JSONObject) groupO;
                 String groupName = group.get("group").toString() + ".";
@@ -3162,5 +3147,4 @@ public class OozieClient {
         }
         return obj;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/client/src/main/java/org/apache/oozie/client/XOozieClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/oozie/client/XOozieClient.java b/client/src/main/java/org/apache/oozie/client/XOozieClient.java
index ba60f8e..7761d11 100644
--- a/client/src/main/java/org/apache/oozie/client/XOozieClient.java
+++ b/client/src/main/java/org/apache/oozie/client/XOozieClient.java
@@ -20,12 +20,15 @@ package org.apache.oozie.client;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.util.Properties;
 
+import com.google.common.base.Charsets;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.oozie.cli.OozieCLI;
 import org.apache.oozie.client.rest.JsonTags;
 import org.apache.oozie.client.rest.RestConstants;
@@ -71,6 +74,7 @@ public class XOozieClient extends OozieClient {
         super(oozieUrl);
     }
 
+    @SuppressFBWarnings(value = "PATH_TRAVERSAL_IN", justification = "FilenameUtils is used to filter user input. JDK8+ is used.")
     private String readScript(String script) throws IOException {
         if (!new File(script).exists()) {
             throw new IOException("Error: script file [" + script + "] does not exist");
@@ -78,7 +82,8 @@ public class XOozieClient extends OozieClient {
 
         BufferedReader br = null;
         try {
-            br = new BufferedReader(new FileReader(script));
+            br = new BufferedReader(new InputStreamReader(new FileInputStream(
+                    FilenameUtils.getFullPath(script) + FilenameUtils.getName(script)), Charsets.UTF_8));
             StringBuilder sb = new StringBuilder();
             String line;
             while ((line = br.readLine()) != null) {
@@ -200,22 +205,23 @@ public class XOozieClient extends OozieClient {
         OozieClient.notNull(scriptFile, "scriptFile");
         validateHttpSubmitConf(conf);
 
-        String script = "";
-        String options = "";
-        String scriptParams = "";
-
-        if (jobType.equals(OozieCLI.HIVE_CMD)) {
-            script = XOozieClient.HIVE_SCRIPT;
-            options = XOozieClient.HIVE_OPTIONS;
-            scriptParams = XOozieClient.HIVE_SCRIPT_PARAMS;
-        }
-        else if (jobType.equals(OozieCLI.PIG_CMD)) {
-            script =  XOozieClient.PIG_SCRIPT;
-            options = XOozieClient.PIG_OPTIONS;
-            scriptParams = XOozieClient.PIG_SCRIPT_PARAMS;
-        }
-        else {
-            throw new IllegalArgumentException("jobType must be either pig or hive");
+        String script;
+        String options;
+        String scriptParams;
+
+        switch (jobType) {
+            case OozieCLI.HIVE_CMD:
+                script = XOozieClient.HIVE_SCRIPT;
+                options = XOozieClient.HIVE_OPTIONS;
+                scriptParams = XOozieClient.HIVE_SCRIPT_PARAMS;
+                break;
+            case OozieCLI.PIG_CMD:
+                script = XOozieClient.PIG_SCRIPT;
+                options = XOozieClient.PIG_OPTIONS;
+                scriptParams = XOozieClient.PIG_SCRIPT_PARAMS;
+                break;
+            default:
+                throw new IllegalArgumentException("jobType must be either pig or hive");
         }
 
         conf.setProperty(script, readScript(scriptFile));
@@ -273,7 +279,7 @@ public class XOozieClient extends OozieClient {
             conn.setRequestProperty("content-type", RestConstants.XML_CONTENT_TYPE);
             writeToXml(conf, conn.getOutputStream());
             if (conn.getResponseCode() == HttpURLConnection.HTTP_CREATED) {
-                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream()));
+                JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(conn.getInputStream(), Charsets.UTF_8));
                 return (String) json.get(JsonTags.JOB_ID);
             }
             if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {

http://git-wip-us.apache.org/repos/asf/oozie/blob/d5b9e369/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 53bcd24..5afa261 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.1.0 release (trunk - unreleased)
 
+OOZIE-2955 [oozie-client] Fix Findbugs warnings (Jan Hentschel, kmarton via andras.piros)
 OOZIE-3109 [log-streaming] Escape HTML-specific characters (dionusos via andras.piros)
 OOZIE-2956 Fix Findbugs warnings related to reliance on default encoding in oozie-core (Jan Hentschel, kmarton via andras.piros)
 OOZIE-3295 Flaky test TestSLACalculatorMemory#testAddMultipleRestartRemoveMultipleInstrumentedCorrectly (pbacsko via andras.piros)