diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/dev-support/findbugs-exclude.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/dev-support/findbugs-exclude.xml index b89146a..99d03a9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/dev-support/findbugs-exclude.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/dev-support/findbugs-exclude.xml @@ -16,5 +16,7 @@ limitations under the License. --> - + + + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java index ef45d10..97eca41 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/SliderClient.java @@ -3574,16 +3574,16 @@ public int actionResolve(ActionResolveArgs args) // as this is an API entry point, validate // the arguments args.validate(); - RegistryOperations operations = getRegistryOperations(); String path = SliderRegistryUtils.resolvePath(args.path); ServiceRecordMarshal serviceRecordMarshal = new ServiceRecordMarshal(); try { if (args.list) { File destDir = args.destdir; - if (destDir != null) { - destDir.mkdirs(); + if (destDir != null && !destDir.mkdirs()) { + throw new IOException("Failed to create directory for " + destDir); } + Map recordMap; Map znodes; try { @@ -4109,11 +4109,8 @@ public void actionRegistryListConfigsYarn(ActionRegistryArgs registryArgs) if (!registryArgs.verbose) { out.println(configName); } else { - PublishedConfiguration published = - configurations.get(configName); - out.printf("%s: %s\n", - configName, - published.description); + PublishedConfiguration published = configurations.get(configName); + out.printf("%s: %s%n", configName, published.description); } } } finally { @@ -4157,9 +4154,7 @@ public void actionRegistryListExports(ActionRegistryArgs registryArgs) out.println(exportName); } else { PublishedExports published = exports.get(exportName); - out.printf("%s: %s\n", - exportName, - published.description); + out.printf("%s: %s%n", exportName, published.description); } } } finally { @@ -4365,9 +4360,8 @@ public RegistryOperations getRegistryOperations() * Output to standard out/stderr (implementation specific detail) * @param src source */ - @SuppressWarnings("UseOfSystemOutOrSystemErr") private static void print(CharSequence src) { - clientOutputStream.append(src); + clientOutputStream.print(src); } /** @@ -4375,8 +4369,7 @@ private static void print(CharSequence src) { * @param message message */ private static void println(String message) { - print(message); - print("\n"); + clientOutputStream.println(message); } /** * Output to standard out/stderr with a newline after, formatted @@ -4384,8 +4377,7 @@ private static void println(String message) { * @param args arguments for string formatting */ private static void println(String message, Object ... args) { - print(String.format(message, args)); - print("\n"); + clientOutputStream.println(String.format(message, args)); } /** diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/TokensOperation.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/TokensOperation.java index 9b9c141..84c65b3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/TokensOperation.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/client/TokensOperation.java @@ -75,11 +75,10 @@ public int actionTokens(ActionTokensArgs args, FileSystem fs, } saveTokens(output, credentials); String filename = output.getCanonicalPath(); - footnote = String.format("%d tokens saved to %s\n" + - "To use these in the environment:\n" + - "export %s=%s", - credentials.numberOfTokens(), - filename, UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION, filename); + footnote = String.format( + "%d tokens saved to %s%n" + "To use these in the environment:%n" + + "export %s=%s", credentials.numberOfTokens(), filename, + UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION, filename); } else if (args.source != null) { File source = args.source; log.info("Reading credentials from file {}", source); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/Comparators.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/Comparators.java index 6380d0c..a83901b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/Comparators.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/Comparators.java @@ -29,25 +29,18 @@ public static class LongComparator implements Comparator, Serializable { @Override public int compare(Long o1, Long o2) { - long result = o1 - o2; - // need to comparisons with a diff greater than integer size - if (result < 0 ) { - return -1; - } else if (result > 0) { - return 1; - } - return 0; + return o1.compareTo(o2); } } -public static class InvertedLongComparator implements Comparator, Serializable { - private static final LongComparator inner = new LongComparator(); + + public static class InvertedLongComparator + implements Comparator, Serializable { @Override public int compare(Long o1, Long o2) { - return -inner.compare(o1, o2); + return o2.compareTo(o1); } } - /** * Little template class to reverse any comparitor * @param the type that is being compared diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/CoreFileSystem.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/CoreFileSystem.java index aa5edf1..c3d6d98 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/CoreFileSystem.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/CoreFileSystem.java @@ -464,37 +464,6 @@ public boolean isFile(Path path) { } /** - * Verify that a file exists in the zip file given by path - * @param path path to zip file - * @param file file expected to be in zip - * @throws FileNotFoundException file not found or is not a zip file - * @throws IOException trouble with FS - */ - public void verifyFileExistsInZip(Path path, String file) throws IOException { - fileSystem.copyToLocalFile(path, new Path("/tmp")); - File dst = new File((new Path("/tmp", path.getName())).toString()); - Enumeration entries; - ZipFile zipFile = new ZipFile(dst); - boolean found = false; - - try { - entries = zipFile.entries(); - while (entries.hasMoreElements()) { - ZipEntry entry = entries.nextElement(); - String nm = entry.getName(); - if (nm.endsWith(file)) { - found = true; - break; - } - } - } finally { - zipFile.close(); - } - dst.delete(); - if (!found) throw new FileNotFoundException("file: " + file + " not found in " + path); - log.info("Verification of " + path + " passed"); - } - /** * Create the application-instance specific temporary directory * in the DFS * diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java index 4457957..e742ed5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java @@ -756,10 +756,10 @@ public static String instanceDetailsToString(String name, public static String containersToString( List containers, String version, Set components) { - String containerf = " %-28s %30s %45s %s\n"; + String containerf = " %-28s %30s %45s %s%n"; StringBuilder builder = new StringBuilder(512); - builder.append("Containers:\n"); - builder.append(String.format(" %-28s %30s %45s %s\n", "Component Name", + builder.append("Containers:%n"); + builder.append(String.format(" %-28s %30s %45s %s%n", "Component Name", "App Version", "Container Id", "Container Info/Logs")); for (ContainerInformation container : containers) { if (filter(container.appVersion, version) @@ -2278,17 +2278,15 @@ public static void validateExe(String program, File exe) throws IOException { public static void write(File outfile, byte[] data, boolean createParent) throws IOException { File parentDir = outfile.getCanonicalFile().getParentFile(); - if (parentDir == null) { - throw new IOException(outfile.getPath() + " has no parent dir"); - } - if (createParent) { - parentDir.mkdirs(); + if (parentDir != null && createParent) { + if (!parentDir.mkdirs()) { + throw new IOException("Failed to create parent directory of " + outfile + .getCanonicalFile()); + } } - SliderUtils.verifyIsDir(parentDir, log); try(FileOutputStream out = new FileOutputStream(outfile)) { out.write(data); } - } /** diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/conf/ConfTree.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/conf/ConfTree.java index be7c56f..74b6abb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/conf/ConfTree.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/conf/ConfTree.java @@ -79,17 +79,6 @@ public Map> components = new HashMap<>(INITAL_MAP_CAPACITY); - - /** - * Shallow clone - * @return a shallow clone - * @throws CloneNotSupportedException - */ - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - @Override public String toString() { try { @@ -105,9 +94,7 @@ public String toString() { * @return a JSON string description * @throws IOException Problems mapping/writing the object */ - public String toJson() throws IOException, - JsonGenerationException, - JsonMappingException { + public String toJson() throws IOException { return ConfTreeSerDeser.toString(this); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/persist/AppDefinitionPersister.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/persist/AppDefinitionPersister.java index 7fb3158..a484065 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/persist/AppDefinitionPersister.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/persist/AppDefinitionPersister.java @@ -147,7 +147,9 @@ public void processSuppliedDefinitions(String clustername, File tempDir = Files.createTempDir(); File pkgSrcDir = new File(tempDir, "default"); - pkgSrcDir.mkdirs(); + if (!pkgSrcDir.mkdirs()) { + throw new IOException("Failed to create directory " + pkgSrcDir); + } File destMetaInfo = new File(pkgSrcDir, "metainfo.json"); if (isFileUsed) { if (buildInfo.appMetaInfo.getName().endsWith(".xml")) { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/zk/MiniZooKeeperCluster.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/zk/MiniZooKeeperCluster.java index c8b3adb..d33cc11 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/zk/MiniZooKeeperCluster.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/core/zk/MiniZooKeeperCluster.java @@ -229,17 +229,6 @@ private void recreateDir(File dir) throws IOException { } } - /** - * Delete the basedir - */ - private void deleteBaseDir() { - if (baseDir != null) { - baseDir.delete(); - baseDir = null; - } - - } - @Override protected void serviceStop() throws Exception { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java index cc17cf0..fd60d7d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeInstance.java @@ -253,7 +253,7 @@ public String toFullString() { new StringBuilder(toString()); sb.append("{ "); for (NodeEntry entry : nodeEntries) { - sb.append(String.format("\n [%02d] ", entry.rolePriority)); + sb.append(String.format("%n [%02d] ", entry.rolePriority)); sb.append(entry.toString()); } sb.append("} ");