@SuppressWarnings("try") private synchronized void closeMergeReaders(MergePolicy.OneMerge merge, boolean suppressExceptions) throws IOException { final boolean drop = suppressExceptions == false; try (Closeable finalizer = merge::mergeFinished) { IOUtils.applyToAll(merge.readers, sr -> { final ReadersAndUpdates rld = getPooledInstance(sr.getOriginalSegmentInfo(), false); // We still hold a ref so it should not have been removed: assert rld != null; if (drop) { rld.dropChanges(); } else { rld.dropMergingUpdates(); } rld.release(sr); release(rld); if (drop) { readerPool.drop(rld.info); } }); } finally { Collections.fill(merge.readers, null); } }
try { if (dropSegment) { mergedUpdates.dropChanges(); } finally { if (!success) { mergedUpdates.dropChanges(); readerPool.drop(merge.info);
rld.dropChanges(); } else { rld.dropMergingUpdates();
rld.dropChanges(); } else { rld.dropMergingUpdates();
@SuppressWarnings("try") private synchronized void closeMergeReaders(MergePolicy.OneMerge merge, boolean suppressExceptions) throws IOException { final boolean drop = suppressExceptions == false; try (Closeable finalizer = merge::mergeFinished) { IOUtils.applyToAll(merge.readers, sr -> { final ReadersAndUpdates rld = getPooledInstance(sr.getOriginalSegmentInfo(), false); // We still hold a ref so it should not have been removed: assert rld != null; if (drop) { rld.dropChanges(); } else { rld.dropMergingUpdates(); } rld.release(sr); release(rld); if (drop) { readerPool.drop(rld.info); } }); } finally { Collections.fill(merge.readers, null); } }
try { if (dropSegment) { mergedUpdates.dropChanges(); } finally { if (!success) { mergedUpdates.dropChanges(); readerPool.drop(merge.info);
try { if (dropSegment) { mergedUpdates.dropChanges(); } finally { if (!success) { mergedUpdates.dropChanges(); readerPool.drop(merge.info);
try { if (dropSegment) { mergedUpdates.dropChanges(); } finally { if (!success) { mergedUpdates.dropChanges(); readerPool.drop(merge.info);
} finally { if (!success) { holder.mergedDeletesAndUpdates.dropChanges(); readerPool.drop(merge.info);
} finally { if (!success) { holder.mergedDeletesAndUpdates.dropChanges(); readerPool.drop(merge.info);