diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java index 800fac1e798..ff521463f6d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java @@ -244,26 +244,29 @@ public void testCloseWithExceptionsInStreamer() throws Exception { // Full stripe and a partial on non-cell boundary (cellSize * dataBlocks) + 123, }; - try { - for (int length: fileLengths) { - // select the two DNs with partial block to kill - final int[] dnIndex = {dataBlocks - 2, dataBlocks - 1}; - final int[] killPos = getKillPositions(length, dnIndex.length); - try { - LOG.info("runTestWithMultipleFailure2: length==" + length - + ", killPos=" + Arrays.toString(killPos) - + ", dnIndex=" + Arrays.toString(dnIndex)); - setup(conf); - runTest(length, killPos, dnIndex, false); - } catch (Throwable e) { - final String err = "failed, killPos=" + Arrays.toString(killPos) - + ", dnIndex=" + Arrays.toString(dnIndex) + ", length=" + length; - LOG.error(err); - throw e; - } + // select the two DNs with partial block to kill + int[] dnIndex = null; + if (parityBlocks > 1) { + dnIndex = new int[] {dataBlocks - 2, dataBlocks - 1}; + } else { + dnIndex = new int[] {dataBlocks - 1}; + } + for (int length : fileLengths) { + final int[] killPos = getKillPositions(length, dnIndex.length); + try { + LOG.info("runTestWithMultipleFailure2: length==" + length + ", killPos=" + + Arrays.toString(killPos) + ", dnIndex=" + + Arrays.toString(dnIndex)); + setup(conf); + runTest(length, killPos, dnIndex, false); + } catch (Throwable e) { + final String err = "failed, killPos=" + Arrays.toString(killPos) + + ", dnIndex=" + Arrays.toString(dnIndex) + ", length=" + length; + LOG.error(err); + throw e; + } finally { + tearDown(); } - } finally { - tearDown(); } }