Description
Each BatchDeleter (i.e., TabletServerBatchDeleter) causes a BatchScanner thread to leak. This is because TabletServerBatchDeleter extends TabletServerBatchReader which opens a thread pool on construction but no close() method is offered on the BatchDeleter interface.
Workaround: downcast BatchDeleter to either BatchScanner or TabletServerBatchDeleter, then call close().
It appears the close() method is available on BatchDeleter from 1.4 forward, but this still affects 1.3 series users (which is why I'm documenting it).
Since BatchDeleter is a one-off class - call delete() and forget - it might make sense for it to close itself instead when complete.