From 7454ed2b595784627ebef078d246b3ae6378cc39 Mon Sep 17 00:00:00 2001 From: Vinayakumar B Date: Thu, 11 Jun 2015 11:51:14 +0530 Subject: [PATCH] HADOOP-12074. in Shell.java#runCommand() rethrow InterruptedException as InterruptedIOException (Contributed by Lavkesh Lahngir) (cherry picked from commit 95c73d49b1bb459b626a9ac52acadb8f5fa724de) --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/util/Shell.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index d67f7b77903..8b5f2181fab 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -362,6 +362,9 @@ Release 2.8.0 - UNRELEASED HADOOP-7817. RawLocalFileSystem.append() should give FSDataOutputStream with accurate .getPos() (kanaka kumar avvaru via vinayakumarb) + HADOOP-12074. in Shell.java#runCommand() rethrow InterruptedException as + InterruptedIOException (Lavkesh Lahngir via vinayakumarb) + Release 2.7.1 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java index c76c92181c8..45c15885e61 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.InputStream; +import java.io.InterruptedIOException; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Map; @@ -554,7 +555,9 @@ abstract public class Shell { throw new ExitCodeException(exitCode, errMsg.toString()); } } catch (InterruptedException ie) { - throw new IOException(ie.toString()); + InterruptedIOException iie = new InterruptedIOException(ie.toString()); + iie.initCause(ie); + throw iie; } finally { if (timeOutTimer != null) { timeOutTimer.cancel();