keith-turner commented on code in PR #2965:
URL: https://github.com/apache/accumulo/pull/2965#discussion_r980467194


##########
core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsHelper.java:
##########
@@ -56,10 +57,12 @@ public void attachIterator(String tableName, 
IteratorSetting setting,
     for (IteratorScope scope : scopes) {
       String root = String.format("%s%s.%s", Property.TABLE_ITERATOR_PREFIX,
           scope.name().toLowerCase(), setting.getName());
-      for (Entry<String,String> prop : setting.getOptions().entrySet()) {
-        this.setProperty(tableName, root + ".opt." + prop.getKey(), 
prop.getValue());
-      }
-      this.setProperty(tableName, root, setting.getPriority() + "," + 
setting.getIteratorClass());
+
+      Map<String,String> propsToAdd = setting.getOptions().entrySet().stream()
+          .collect(Collectors.toMap(prop -> root + ".opt." + prop.getKey(), 
Entry::getValue));
+      propsToAdd.put(root, setting.getPriority() + "," + 
setting.getIteratorClass());
+
+      this.modifyProperties(tableName, props -> props.putAll(propsToAdd));

Review Comment:
   ConcurrentModificationException is not being handled.  The previous code 
would set the props and never throw this.  Now a user could spuriously get this 
exception.    
   
   I didn't realize that ConcurrentModificationException was a run time 
exception when looking at #2799.  I don't think that is good user experience 
for a spurious exception that user can not take any action to avoid and must 
handle.  Since its a run time exception when a developer is writing code they 
will most likely be unaware of it and it will most likely not be thrown in 
their testing.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to