private void reset() {
        this.numChunks = 0;
        this.baseDir = null;
        this.indexFileSizes.clear();
        this.dataFileSizes.clear();
        this.fileNames.clear();
        this.indexFiles.clear();
        this.mappedIndexFileReader.clear();

        this.dataFiles.clear();
        this.chunkIdToChunkStart.clear();
        this.chunkIdToNumChunks.clear();

    }
private void reset ( ) { this . numChunks = 0 ; this . baseDir = null ; this . indexFileSizes . clear ( ) ; this . dataFileSizes . clear ( ) ; this . fileNames . clear ( ) ; this . indexFiles . clear ( ) ; this . mappedIndexFileReader . clear ( ) ; this . dataFiles . clear ( ) ; this . chunkIdToChunkStart . clear ( ) ; this . chunkIdToNumChunks . clear ( ) ; }
/*
Ideally all methods after the close should throw an Exception if called,
but that will involve changing a lot of code ( this file and callers )
and testing. So reseting most of the collections so that the read returns
empty data. Before this method was introduced JVM used to crash when the
memory mapped file was accessed after it was closed.