You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by jl...@apache.org on 2014/10/31 23:59:24 UTC

git commit: YARN-2707. Potential null dereference in FSDownload. Contributed by Gera Shegalov (cherry picked from commit 7bc179f9f5e1e270fd5e6f1ad29b0f32fe371d15)

Repository: hadoop
Updated Branches:
  refs/heads/branch-2 6d4a04a03 -> ada40aa93


YARN-2707. Potential null dereference in FSDownload. Contributed by Gera Shegalov
(cherry picked from commit 7bc179f9f5e1e270fd5e6f1ad29b0f32fe371d15)


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

Branch: refs/heads/branch-2
Commit: ada40aa9339acf09864edb1b2669da8f3d033b5f
Parents: 6d4a04a
Author: Jason Lowe <jl...@apache.org>
Authored: Fri Oct 31 22:53:04 2014 +0000
Committer: Jason Lowe <jl...@apache.org>
Committed: Fri Oct 31 22:54:49 2014 +0000

----------------------------------------------------------------------
 hadoop-yarn-project/CHANGES.txt                        |  3 +++
 .../java/org/apache/hadoop/yarn/util/FSDownload.java   | 13 +++++--------
 .../org/apache/hadoop/yarn/util/TestFSDownload.java    |  3 +--
 3 files changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ada40aa9/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index bf42142..96e5b2b 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -796,6 +796,9 @@ Release 2.6.0 - UNRELEASED
     modified in YARN-2698 so that tests in YARN frameworks don't break. (Wangda
     Tan via vinodkv)
 
+    YARN-2707. Potential null dereference in FSDownload (Gera Shegalov via
+    jlowe)
+
 Release 2.5.1 - 2014-09-05
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ada40aa9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java
----------------------------------------------------------------------
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 @@ public class FSDownload implements Callable<Path> {
     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 @@ public class FSDownload implements Callable<Path> {
     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 class FSDownload implements Callable<Path> {
               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) {

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ada40aa9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java
----------------------------------------------------------------------
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 02ba5fa..07dd630 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
@@ -500,9 +500,8 @@ public class TestFSDownload {
     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) {