Description
Currently the catch is outside the while loop:
try { while (cacheEnabled && writerEnabled) { ... } catch (Throwable t) { LOG.warn("Failed doing drain", t); }
When exception (e.g. BucketAllocatorException) is thrown, run() method would terminate, silently.