[ https://issues.apache.org/jira/browse/ACCUMULO-53?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Billie Rinaldi resolved ACCUMULO-53. ------------------------------------ Resolution: Fixed > Multiple deletes cause a RuntimeException > ----------------------------------------- > > Key: ACCUMULO-53 > URL: https://issues.apache.org/jira/browse/ACCUMULO-53 > Project: Accumulo > Issue Type: Bug > Components: client > Affects Versions: 1.3.5 > Reporter: Jesse Yates > Assignee: Jesse Yates > Fix For: 1.4.0 > > Attachments: java_ACCUMULO-53.patch, java_ACCUMULO-53_v2.patch, > java_ACCUMULO-53_v3.patch > > > 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