Author: cnauroth Date: Thu Sep 26 17:33:07 2013 New Revision: 1526615 URL: http://svn.apache.org/r1526615 Log: HDFS-5186. TestFileJournalManager fails on Windows due to file handle leaks. Contributed by Chuan Liu.
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileJournalManager.java Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1526615&r1=1526614&r2=1526615&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Sep 26 17:33:07 2013 @@ -351,6 +351,9 @@ Release 2.1.2 - UNRELEASED HDFS-5258. Skip tests in TestHDFSCLI that are not applicable on Windows. (Chuan Liu via cnauroth) + HDFS-5186. TestFileJournalManager fails on Windows due to file handle leaks. + (Chuan Liu via cnauroth) + Release 2.1.1-beta - 2013-09-23 INCOMPATIBLE CHANGES Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileJournalManager.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileJournalManager.java?rev=1526615&r1=1526614&r2=1526615&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileJournalManager.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFileJournalManager.java Thu Sep 26 17:33:07 2013 @@ -86,24 +86,27 @@ public class TestFileJournalManager { EditLogInputStream elis = null; try { while ((elis = allStreams.poll()) != null) { - elis.skipUntil(txId); - while (true) { - FSEditLogOp op = elis.readOp(); - if (op == null) { - break; - } - if (abortOnGap && (op.getTransactionId() != txId)) { - LOG.info("getNumberOfTransactions: detected gap at txId " + - fromTxId); - return numTransactions; + try { + elis.skipUntil(txId); + while (true) { + FSEditLogOp op = elis.readOp(); + if (op == null) { + break; + } + if (abortOnGap && (op.getTransactionId() != txId)) { + LOG.info("getNumberOfTransactions: detected gap at txId " + + fromTxId); + return numTransactions; + } + txId = op.getTransactionId() + 1; + numTransactions++; } - txId = op.getTransactionId() + 1; - numTransactions++; + } finally { + IOUtils.cleanup(LOG, elis); } } } finally { IOUtils.cleanup(LOG, allStreams.toArray(new EditLogInputStream[0])); - IOUtils.cleanup(LOG, elis); } return numTransactions; }