[
https://issues.apache.org/jira/browse/ACCUMULO-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131244#comment-13131244
]
Jesse Yates commented on ACCUMULO-53:
-------------------------------------
Glad to work put a patch for this, but just wanted to get the community input
on the right way to do it.
> Multiple deletes cause a RuntimeException
> -----------------------------------------
>
> Key: ACCUMULO-53
> URL: https://issues.apache.org/jira/browse/ACCUMULO-53
> Project: Accumulo
> Issue Type: Bug
> Components: tserver
> Affects Versions: 1.3.5, 1.4.0
> Reporter: Jesse Yates
> Assignee: Keith Turner
>
> Pretty sure this affects 1.3.5, though it may also on 1.4.0 (haven't tested
> on the latter, but the code looks the same).
> When a BatchDeleter is used multiple times on the same time, it doesn't reset
> the scan iterators, leading to runtime exceptions when there are multiple
> calls to delete().
> Below, we can see that it adds a scan iterator to get the list of values in
> the table. Since it just sets the name of the deleter to
> "org.apache.accumulo.core.client.BatchDeleter.NOVALUE" every time. So when
> you go to run the scan a second time, it attempts set the same scan iterator
> again.
> {code}
> public void delete() throws MutationsRejectedException,
> TableNotFoundException {
> super.addScanIterator(new IteratorSetting(Integer.MAX_VALUE,
> BatchDeleter.class.getName() + ".NOVALUE", SortedKeyIterator.class));
> {code}
> This results in a RuntimeException telling you that the 'Iterator name is
> already in use'.
> After doing the delete, the BatchDeleter should remove that iterator
> (possibly just clear all iterators) when done with the delete.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira