Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.0
-
None
-
None
-
Reviewed
Description
ClientAsyncPrefetchScanner uses a fixed capacity LinkedBlockingQueue, so it may throw “queue full”. For example, scan with infinite caching or extra data from observer.
@Override protected void initCache() { // concurrent cache cacheCapacity = calcCacheCapacity(); cache = new LinkedBlockingQueue<Result>(cacheCapacity); cacheSizeInBytes = new AtomicLong(0); exceptionsQueue = new ConcurrentLinkedQueue<Exception>(); prefetchRunnable = new PrefetchRunnable(); prefetchRunning = new AtomicBoolean(false); closingThreadId = new AtomicLong(NO_THREAD); }