indexOutput.writeString("no need to write, nobody ever will read this"); indexOutput.close(); assertFileExistsHavingRLCount(filename, 1, true); IndexInput firstOpenOnB = dirB.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 2, true); dirA.deleteFile(filename); assertFileExistsHavingRLCount(filename, 1, false); assertFileExistsHavingRLCount(filename, 1, false); cloneOfFirstOpenOnB.close(); assertFileExistsHavingRLCount(filename, 1, false); IndexInput firstOpenOnA = dirA.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 2, false); IndexInput secondOpenOnA = dirA.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 2, false); firstOpenOnA.close(); assertFileExistsHavingRLCount(filename, 2, false); secondOpenOnA.close(); assertFileExistsHavingRLCount(filename, 1, false); firstOpenOnB.close(); assertFileNotExists(filename);