Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.89.20100621, 0.89.20100924, 0.90.0, 0.90.1, 0.90.2, 0.90.3
-
None
-
Reviewed
Description
This is a fix for an NullPointerException that happens in passesBloomFilter. The meta block fails to load, and the IOException catch block sets the Bloom filter to null. Then all other threads waiting on the Bloom filter to load get a chance to try to load the meta block, and one of them eventually succeeds and goes on to query the Bloom filter in StoreFile.passesBloomFilter, but bloomFilter has been already set to null. The fix is to cache the bloomFilter variable in a local variable in passesBloomFilter so that it cannot be made null while the thread is waiting for another thread to load Bloom filter bits.