public void closeStreamReaders(boolean evictOnClose) throws IOException { synchronized (this) { for (StoreFileReader entry : streamReaders) { //closing the reader will remove itself from streamReaders thanks to the Listener entry.close(evictOnClose); } int size = streamReaders.size(); Preconditions.checkState(size == 0, "There are still streamReaders post close: " + size); } }
/** * @param evictOnClose whether to evict blocks belonging to this file * @throws IOException */ public synchronized void closeStoreFile(boolean evictOnClose) throws IOException { if (this.reader != null) { this.reader.close(evictOnClose); this.reader = null; } closeStreamReaders(evictOnClose); }
r.close(true); file.closeStreamReaders(true);
assertFalse(exists); reader.close(true); // evict because we are about to delete the file fs.delete(f, true);
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); assertEquals("False negatives: " + falseNeg, 0, falseNeg);
reader.close(true); // evict because we are about to delete the file fs.delete(f, true);
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); System.out.println(bt[x].toString());
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); assertEquals("False negatives: " + falseNeg, 0, falseNeg);
scanner.values().stream().forEach(s -> { try { s.close(true); } catch (IOException ioe) { LOG.error("Failed while closing store file", ioe);
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); assertEquals("False negatives: " + falseNeg, 0, falseNeg);
assertTrue(ioe.getMessage().contains("Fault")); reader.close(true); // end of test so evictOnClose
r.close(true); // end of test so evictOnClose
reader.close(cacheConf.shouldEvictOnClose());
startMiss += 3; scanner.close(); reader.close(cacheConf.shouldEvictOnClose()); startHit += 3; scanner.close(); reader.close(cacheConf.shouldEvictOnClose()); startHit += 6; scannerOne.close(); readerOne.close(cacheConf.shouldEvictOnClose()); scannerTwo.close(); readerTwo.close(cacheConf.shouldEvictOnClose()); hsf.initReader(); reader = hsf.getReader(); reader.close(cacheConf.shouldEvictOnClose()); hsf.initReader(); reader = hsf.getReader(); reader.close(cacheConf.shouldEvictOnClose());
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); assertEquals("False negatives: " + falseNeg, 0, falseNeg);
reader.close(true); // evict because we are about to delete the file fs.delete(f, true); assertEquals("False negatives: " + falseNeg, 0, falseNeg);
scanner.values().stream().forEach(s -> { try { s.close(true); } catch (IOException ioe) { LOG.error("Failed while closing store file", ioe);
assertTrue(ioe.getMessage().contains("Fault")); reader.close(true); // end of test so evictOnClose
reader.close(cacheConf.shouldEvictOnClose());