Browse Source

HADOOP-12469. distcp shout not ignore the ignoreFailures option. Contributed by Mingliang Liu.

Haohui Mai 9 years ago
parent
commit
a412edf5c4

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -695,6 +695,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12441. Fixed shell-kill command behaviour to work correctly on some
     Linux distributions after HADOOP-12317. (Wangda Tan via vinodkv)
 
+    HADOOP-12469. distcp shout not ignore the ignoreFailures option.
+    (Mingliang Liu via wheat9)
+
 Release 2.7.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 1 - 1
hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/mapred/CopyMapper.java

@@ -283,7 +283,7 @@ public class CopyMapper extends Mapper<Text, CopyListingFileStatus, Text, Text>
     } catch (Exception e) {
       context.setStatus("Copy Failure: " + sourceFileStatus.getPath());
       throw new IOException("File copy failed: " + sourceFileStatus.getPath() +
-          " --> " + target, e);
+          " --> " + target, e.getCause());
     }
     incrementCounter(context, Counter.BYTESEXPECTED, sourceFileStatus.getLen());
     incrementCounter(context, Counter.BYTESCOPIED, bytesCopied);

+ 5 - 3
hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/mapred/TestCopyMapper.java

@@ -713,7 +713,7 @@ public class TestCopyMapper {
             // wrapped twice - once in RetriableCommand and again in CopyMapper
             // itself.
             if (e.getCause() == null || e.getCause().getCause() == null ||
-                !(e.getCause().getCause() instanceof AccessControlException)) {
+                !(e.getCause() instanceof AccessControlException)) {
               throw new RuntimeException(e);
             }
           }
@@ -841,8 +841,10 @@ public class TestCopyMapper {
     }
     catch (Exception exception) {
       // Check that the exception suggests the use of -pb/-skipCrc.
-      Assert.assertTrue("Failure exception should have suggested the use of -pb.", exception.getCause().getCause().getMessage().contains("pb"));
-      Assert.assertTrue("Failure exception should have suggested the use of -skipCrc.", exception.getCause().getCause().getMessage().contains("skipCrc"));
+      Assert.assertTrue("Exception should have suggested the use of -pb.",
+          exception.getCause().getMessage().contains("pb"));
+      Assert.assertTrue("Exception should have suggested the use of -skipCrc.",
+          exception.getCause().getMessage().contains("skipCrc"));
     }
   }