Github user xuchuanyin commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2324#discussion_r189797259 --- Diff: datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomDataMapCache.java --- @@ -133,15 +132,14 @@ private int validateAndGetCacheSize() { */ private List<BloomDMModel> loadBloomDataMapModel(CacheKey cacheKey) { DataInputStream dataInStream = null; - ObjectInputStream objectInStream = null; List<BloomDMModel> bloomDMModels = new ArrayList<BloomDMModel>(); try { String indexFile = getIndexFileFromCacheKey(cacheKey); dataInStream = FileFactory.getDataInputStream(indexFile, FileFactory.getFileType(indexFile)); - objectInStream = new ObjectInputStream(dataInStream); try { - BloomDMModel model = null; - while ((model = (BloomDMModel) objectInStream.readObject()) != null) { + while (dataInStream.available() > 0) { --- End diff -- The javadoc said ``` Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream. ``` So `dataInStream.available()== 0` does not mean that we have already read all the content from the stream.
---