diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java index 875e96a0a96e..275f043f5fb2 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java @@ -211,6 +211,7 @@ private void checkAllVolumes() throws IOException { try { failedVolumes = volumeChecker.checkAllVolumes(allVolumes); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new IOException("Interrupted while running disk check", e); } diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java index fa280ddb7308..e3571e52e763 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeSet.java @@ -44,6 +44,7 @@ import org.junit.rules.Timeout; import java.io.File; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -243,4 +244,27 @@ public void testFailVolumes() throws Exception{ } } + + @Test + public void testInterrupt() throws Exception { + Method method = this.volumeSet.getClass() + .getDeclaredMethod("checkAllVolumes"); + method.setAccessible(true); + String exceptionMessage = ""; + + try { + Thread.currentThread().interrupt(); + method.invoke(this.volumeSet); + if (Thread.currentThread().isInterrupted()) { + throw new InterruptedException("Interruption Occur"); + } + } catch (InterruptedException interruptedException) { + exceptionMessage = "InterruptedException Occur."; + } + + assertEquals( + "InterruptedException Occur.", + exceptionMessage); + } + }