diff --git hadoop-yarn-project/hadoop-yarn/dev-support/findbugs-exclude.xml hadoop-yarn-project/hadoop-yarn/dev-support/findbugs-exclude.xml
index 45d7294..febb5c2 100644
--- hadoop-yarn-project/hadoop-yarn/dev-support/findbugs-exclude.xml
+++ hadoop-yarn-project/hadoop-yarn/dev-support/findbugs-exclude.xml
@@ -124,6 +124,11 @@
+
+
+
+
+
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java
index b3ea865..a9a7091 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java
@@ -463,11 +463,11 @@ public boolean init(String[] args) throws ParseException, IOException {
scriptPath = envs.get(DSConstants.DISTRIBUTEDSHELLSCRIPTLOCATION);
if (envs.containsKey(DSConstants.DISTRIBUTEDSHELLSCRIPTTIMESTAMP)) {
- shellScriptPathTimestamp = Long.valueOf(envs
+ shellScriptPathTimestamp = Long.parseLong(envs
.get(DSConstants.DISTRIBUTEDSHELLSCRIPTTIMESTAMP));
}
if (envs.containsKey(DSConstants.DISTRIBUTEDSHELLSCRIPTLEN)) {
- shellScriptPathLen = Long.valueOf(envs
+ shellScriptPathLen = Long.parseLong(envs
.get(DSConstants.DISTRIBUTEDSHELLSCRIPTLEN));
}
if (!scriptPath.isEmpty()
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
index d41434e..b9c7e80 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Map;
@@ -232,11 +233,11 @@ public void launchAM(ApplicationAttemptId attemptId)
Process amProc = Runtime.getRuntime().exec(amCmd, envAMList.toArray(envAM));
final BufferedReader errReader =
- new BufferedReader(new InputStreamReader(amProc
- .getErrorStream()));
+ new BufferedReader(new InputStreamReader(
+ amProc.getErrorStream(), Charset.forName("UTF-8")));
final BufferedReader inReader =
- new BufferedReader(new InputStreamReader(amProc
- .getInputStream()));
+ new BufferedReader(new InputStreamReader(
+ amProc.getInputStream(), Charset.forName("UTF-8")));
// read error and input streams as this would free up the buffers
// free the error stream buffer
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java
index 071c1ee..3cf18ba 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/AMRMClientImpl.java
@@ -260,10 +260,9 @@ public AllocateResponse allocate(float progressIndicator)
blacklistToAdd.addAll(blacklistAdditions);
blacklistToRemove.addAll(blacklistRemovals);
- ResourceBlacklistRequest blacklistRequest =
- (blacklistToAdd != null) || (blacklistToRemove != null) ?
+ ResourceBlacklistRequest blacklistRequest =
ResourceBlacklistRequest.newInstance(blacklistToAdd,
- blacklistToRemove) : null;
+ blacklistToRemove);
allocateRequest =
AllocateRequest.newInstance(lastResponseId, progressIndicator,
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
index 83d212d..a87e81f 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
@@ -19,7 +19,9 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.charset.Charset;
import java.text.DecimalFormat;
import java.util.EnumSet;
import java.util.HashSet;
@@ -261,7 +263,8 @@ private void printApplicationAttemptReport(String applicationAttemptId)
.toApplicationAttemptId(applicationAttemptId));
// Use PrintWriter.println, which uses correct platform line ending.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter appAttemptReportStr = new PrintWriter(baos);
+ PrintWriter appAttemptReportStr = new PrintWriter(
+ new OutputStreamWriter(baos, Charset.forName("UTF-8")));
if (appAttemptReport != null) {
appAttemptReportStr.println("Application Attempt Report : ");
appAttemptReportStr.print("\tApplicationAttempt-Id : ");
@@ -300,7 +303,8 @@ private void printContainerReport(String containerId) throws YarnException,
.toContainerId(containerId)));
// Use PrintWriter.println, which uses correct platform line ending.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter containerReportStr = new PrintWriter(baos);
+ PrintWriter containerReportStr = new PrintWriter(
+ new OutputStreamWriter(baos, Charset.forName("UTF-8")));
if (containerReport != null) {
containerReportStr.println("Container Report : ");
containerReportStr.print("\tContainer-Id : ");
@@ -337,7 +341,8 @@ private void printContainerReport(String containerId) throws YarnException,
private void listApplications(Set appTypes,
EnumSet appStates) throws YarnException,
IOException {
- PrintWriter writer = new PrintWriter(sysout);
+ PrintWriter writer = new PrintWriter(
+ new OutputStreamWriter(sysout, Charset.forName("UTF-8")));
if (allAppStates) {
for (YarnApplicationState appState : YarnApplicationState.values()) {
appStates.add(appState);
@@ -431,7 +436,8 @@ private void printApplicationReport(String applicationId)
.toApplicationId(applicationId));
// Use PrintWriter.println, which uses correct platform line ending.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter appReportStr = new PrintWriter(baos);
+ PrintWriter appReportStr = new PrintWriter(
+ new OutputStreamWriter(baos, Charset.forName("UTF-8")));
if (appReport != null) {
appReportStr.println("Application Report : ");
appReportStr.print("\tApplication-Id : ");
@@ -503,7 +509,8 @@ private String getAllValidApplicationStates() {
*/
private void listApplicationAttempts(String applicationId) throws YarnException,
IOException {
- PrintWriter writer = new PrintWriter(sysout);
+ PrintWriter writer = new PrintWriter(
+ new OutputStreamWriter(sysout, Charset.forName("UTF-8")));
List appAttemptsReport = client
.getApplicationAttempts(ConverterUtils.toApplicationId(applicationId));
@@ -529,7 +536,8 @@ private void listApplicationAttempts(String applicationId) throws YarnException,
*/
private void listContainers(String appAttemptId) throws YarnException,
IOException {
- PrintWriter writer = new PrintWriter(sysout);
+ PrintWriter writer = new PrintWriter(
+ new OutputStreamWriter(sysout, Charset.forName("UTF-8")));
List appsReport = client
.getContainers(ConverterUtils.toApplicationAttemptId(appAttemptId));
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index fa2779e..22c240f 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -19,7 +19,9 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -141,7 +143,8 @@ private void printUsage(Options opts) {
*/
private void listClusterNodes(Set nodeStates)
throws YarnException, IOException {
- PrintWriter writer = new PrintWriter(sysout);
+ PrintWriter writer = new PrintWriter(
+ new OutputStreamWriter(sysout, Charset.forName("UTF-8")));
List nodesReport = client.getNodeReports(
nodeStates.toArray(new NodeState[0]));
writer.println("Total Nodes:" + nodesReport.size());
@@ -167,7 +170,8 @@ private void printNodeStatus(String nodeIdStr) throws YarnException,
List nodesReport = client.getNodeReports();
// Use PrintWriter.println, which uses correct platform line ending.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter nodeReportStr = new PrintWriter(baos);
+ PrintWriter nodeReportStr = new PrintWriter(
+ new OutputStreamWriter(baos, Charset.forName("UTF-8")));
NodeReport nodeReport = null;
for (NodeReport report : nodesReport) {
if (!report.getNodeId().equals(nodeId)) {
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/QueueCLI.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/QueueCLI.java
index 4d50e7f..8a5521d 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/QueueCLI.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/QueueCLI.java
@@ -18,7 +18,9 @@
package org.apache.hadoop.yarn.client.cli;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.charset.Charset;
import java.text.DecimalFormat;
import java.util.Set;
@@ -102,7 +104,8 @@ void printUsage(Options opts) {
*/
private int listQueue(String queueName) throws YarnException, IOException {
int rc;
- PrintWriter writer = new PrintWriter(sysout);
+ PrintWriter writer = new PrintWriter(
+ new OutputStreamWriter(sysout, Charset.forName("UTF-8")));
QueueInfo queueInfo = client.getQueueInfo(queueName);
if (queueInfo != null) {
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/CuratorService.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/CuratorService.java
index 0b68b0a..7f35c3f 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/CuratorService.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/CuratorService.java
@@ -491,7 +491,10 @@ public Stat zkStat(String path) throws IOException {
public boolean zkPathExists(String path) throws IOException {
checkServiceLive();
try {
- return zkStat(path) != null;
+ // if zkStat(path) returns without throwing an exception, the return value
+ // is guaranteed to be not null
+ zkStat(path);
+ return true;
} catch (PathNotFoundException e) {
return false;
} catch (IOException e) {
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/RegistrySecurity.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/RegistrySecurity.java
index 5370880..d3c2d15 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/RegistrySecurity.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/client/impl/zk/RegistrySecurity.java
@@ -592,17 +592,17 @@ public static String getKerberosAuthModuleForJVM() {
* Note the semicolon on the last entry
*/
private static final String JAAS_ENTRY =
- "%s { \n"
- + " %s required\n"
+ "%s { %n"
+ + " %s required%n"
// kerberos module
- + " keyTab=\"%s\"\n"
- + " debug=true\n"
- + " principal=\"%s\"\n"
- + " useKeyTab=true\n"
- + " useTicketCache=false\n"
- + " doNotPrompt=true\n"
- + " storeKey=true;\n"
- + "}; \n"
+ + " keyTab=\"%s\"%n"
+ + " debug=true%n"
+ + " principal=\"%s\"%n"
+ + " useKeyTab=true%n"
+ + " useTicketCache=false%n"
+ + " doNotPrompt=true%n"
+ + " storeKey=true;%n"
+ + "}; %n"
;
/**
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/services/RegistryAdminService.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/services/RegistryAdminService.java
index 693bb0b..513d7ac 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/services/RegistryAdminService.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/services/RegistryAdminService.java
@@ -217,9 +217,9 @@ protected void serviceStart() throws Exception {
String message = String.format(Locale.ENGLISH,
"Failed to create root paths {%s};" +
- "\ndiagnostics={%s}" +
- "\ncurrent registry is:" +
- "\n{%s}",
+ "%ndiagnostics={%s}" +
+ "%ncurrent registry is:" +
+ "%n{%s}",
e,
bindingDiagnosticDetails(),
dumpRegistryRobustly(true));
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/lib/ZKClient.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/lib/ZKClient.java
index 84e41ce..e675308 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/lib/ZKClient.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/lib/ZKClient.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.yarn.lib;
import java.io.IOException;
+import java.nio.charset.Charset;
import java.util.List;
import org.apache.zookeeper.CreateMode;
@@ -55,8 +56,8 @@ public ZKClient(String string) throws IOException {
public void registerService(String path, String data) throws
IOException, InterruptedException {
try {
- zkClient.create(path, data.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
- CreateMode.EPHEMERAL);
+ zkClient.create(path, data.getBytes(Charset.forName("UTF-8")),
+ ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
} catch(KeeperException ke) {
throw new IOException(ke);
}
@@ -109,7 +110,7 @@ public String getServiceData(String path) throws IOException,
try {
Stat stat = new Stat();
byte[] byteData = zkClient.getData(path, false, stat);
- data = new String(byteData);
+ data = new String(byteData, Charset.forName("UTF-8"));
} catch(KeeperException ke) {
throw new IOException(ke);
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java
index 1b32671..68d4ef9 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/utils/BuilderUtils.java
@@ -118,7 +118,7 @@ public static LocalResource newLocalResource(URI uri,
public static ApplicationId newApplicationId(RecordFactory recordFactory,
long clustertimestamp, CharSequence id) {
return ApplicationId.newInstance(clustertimestamp,
- Integer.valueOf(id.toString()));
+ Integer.parseInt(id.toString()));
}
public static ApplicationId newApplicationId(RecordFactory recordFactory,
@@ -137,7 +137,7 @@ public static ApplicationAttemptId newApplicationAttemptId(
public static ApplicationId convert(long clustertimestamp, CharSequence id) {
return ApplicationId.newInstance(clustertimestamp,
- Integer.valueOf(id.toString()));
+ Integer.parseInt(id.toString()));
}
public static ContainerId newContainerId(ApplicationAttemptId appAttemptId,