accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Patrone (JIRA)" <>
Subject [jira] [Created] (ACCUMULO-587) Add finalize to TabletServerBatchReader to catch when user forgets to close
Date Fri, 11 May 2012 00:27:49 GMT
Dennis Patrone created ACCUMULO-587:

             Summary: Add finalize to TabletServerBatchReader to catch when user forgets to
                 Key: ACCUMULO-587
             Project: Accumulo
          Issue Type: Improvement
          Components: client
            Reporter: Dennis Patrone
            Assignee: Billie Rinaldi
            Priority: Trivial

If a client forgets to close a BatchScanner or BatchDeleter, threads are leaked in the TabletServerBatchReader
implementation.  It would be nice if a finalize method were added to check and warn the user
of such a problem. The thread pool appeared to only be shared with the TabletServerBatchReaderIterator,
which maintains a reference to the TabletServerBatchReader itself.  So AFAICT if the TabletServerBatchReader
is eligible for garbage collection, there can be no client references to that scanner or any
iterators it created (i.e., it _should_ have been closed).

For example:

protected void finalize() {
   if (!queryThreadPool.isShutdown()) {
      // add a logger reference in class initialization
      log.warn("TabletServerBatchReader not shutdown; did you forget to call close()?");

The same might be true for the TabletServerBatchWriter (it has a close), but I didn't look
into that class.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message