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.
---