commit a59bd608e09d00abf98f73d6e4b20257f581fa4b Author: Gera Shegalov Date: Mon Oct 20 22:23:02 2014 -0700 YARN-2707.v01.patch diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java index 8cc5ed3..fb37701 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java @@ -266,7 +266,7 @@ private Path copy(Path sCopy, Path dstdir) throws IOException { return dCopy; } - private long unpack(File localrsrc, File dst, Pattern pattern) throws IOException { + private long unpack(File localrsrc, File dst) throws IOException { switch (resource.getType()) { case ARCHIVE: { String lowerDst = dst.getName().toLowerCase(); @@ -290,7 +290,9 @@ private long unpack(File localrsrc, File dst, Pattern pattern) throws IOExceptio case PATTERN: { String lowerDst = dst.getName().toLowerCase(); if (lowerDst.endsWith(".jar")) { - RunJar.unJar(localrsrc, dst, pattern); + String p = resource.getPattern(); + RunJar.unJar(localrsrc, dst, + p == null ? RunJar.MATCH_ANY : Pattern.compile(p)); File newDst = new File(dst, dst.getName()); if (!dst.exists() && !dst.mkdir()) { throw new IOException("Unable to create directory: [" + dst + "]"); @@ -356,12 +358,7 @@ public Path run() throws Exception { return files.makeQualified(copy(sCopy, dst_work)); }; }); - Pattern pattern = null; - String p = resource.getPattern(); - if (p != null) { - pattern = Pattern.compile(p); - } - unpack(new File(dTmp.toUri()), new File(dFinal.toUri()), pattern); + unpack(new File(dTmp.toUri()), new File(dFinal.toUri())); changePermissions(dFinal.getFileSystem(conf), dFinal); files.rename(dst_work, destDirPath, Rename.OVERWRITE); } catch (Exception e) { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java index 8148d41..aa05547 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java @@ -510,9 +510,8 @@ private void downloadWithFileType(TEST_FILE_TYPE fileType) throws IOException, pending.put(rsrc, exec.submit(fsd)); exec.shutdown(); while (!exec.awaitTermination(1000, TimeUnit.MILLISECONDS)); - Assert.assertTrue(pending.get(rsrc).isDone()); - try { + pending.get(rsrc).get(); // see if there was an Exception during download FileStatus[] filesstatus = files.getDefaultFileSystem().listStatus( basedir); for (FileStatus filestatus : filesstatus) {