Skip to content

Commit 01acb1c

Browse files
committed
Close IndexWriter and Directory in try blocks Relates to #12685
1 parent 5966ec6 commit 01acb1c

File tree

1 file changed

+36
-34
lines changed

1 file changed

+36
-34
lines changed

lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1770,43 +1770,45 @@ public void testHasBlocksMergeFullyDelSegments() throws IOException {
17701770
}
17711771

17721772
public void testCarryOverHasBlocks() throws Exception {
1773-
Directory dir = newDirectory();
1774-
IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(new MockAnalyzer(random())));
1773+
try (Directory dir = newDirectory()) {
1774+
try (IndexWriter w =
1775+
new IndexWriter(dir, new IndexWriterConfig(new MockAnalyzer(random())))) {
17751776

1776-
final List<Document> docs = new ArrayList<>();
1777-
docs.add(new Document());
1778-
w.updateDocuments(new Term("foo", "bar"), docs);
1779-
w.commit();
1780-
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1781-
SegmentCommitInfo segmentInfo =
1782-
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1783-
assertFalse(segmentInfo.info.getHasBlocks());
1784-
}
1777+
final List<Document> docs = new ArrayList<>();
1778+
docs.add(new Document());
1779+
w.updateDocuments(new Term("foo", "bar"), docs);
1780+
w.commit();
1781+
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1782+
SegmentCommitInfo segmentInfo =
1783+
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1784+
assertFalse(segmentInfo.info.getHasBlocks());
1785+
}
17851786

1786-
docs.add(new Document()); // now we have 2 docs
1787-
w.updateDocuments(new Term("foo", "bar"), docs);
1788-
w.commit();
1789-
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1790-
assertEquals(2, reader.leaves().size());
1791-
SegmentCommitInfo segmentInfo =
1792-
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1793-
assertFalse(
1794-
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1795-
segmentInfo = ((SegmentReader) reader.leaves().get(1).reader()).getSegmentInfo();
1796-
assertTrue(
1797-
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1798-
}
1799-
w.forceMerge(1, true);
1800-
w.commit();
1801-
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1802-
assertEquals(1, reader.leaves().size());
1803-
SegmentCommitInfo segmentInfo =
1804-
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1805-
assertTrue(
1806-
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1787+
docs.add(new Document()); // now we have 2 docs
1788+
w.updateDocuments(new Term("foo", "bar"), docs);
1789+
w.commit();
1790+
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1791+
assertEquals(2, reader.leaves().size());
1792+
SegmentCommitInfo segmentInfo =
1793+
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1794+
assertFalse(
1795+
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1796+
segmentInfo = ((SegmentReader) reader.leaves().get(1).reader()).getSegmentInfo();
1797+
assertTrue(
1798+
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1799+
}
1800+
w.forceMerge(1, true);
1801+
w.commit();
1802+
try (DirectoryReader reader = DirectoryReader.open(dir)) {
1803+
assertEquals(1, reader.leaves().size());
1804+
SegmentCommitInfo segmentInfo =
1805+
((SegmentReader) reader.leaves().get(0).reader()).getSegmentInfo();
1806+
assertTrue(
1807+
"codec: " + segmentInfo.info.getCodec().toString(), segmentInfo.info.getHasBlocks());
1808+
}
1809+
w.commit();
1810+
}
18071811
}
1808-
w.commit();
1809-
dir.close();
18101812
}
18111813

18121814
// LUCENE-3872

0 commit comments

Comments
 (0)