Fix ModifyCollectionInEnhancedForLoop warning flagged by error prone
Running recent error prone version complaining on that code:
BucketedCallback.java:73: warning: [ModifyCollectionInEnhancedForLoop]
Modifying a collection while iterating over it in a loop may cause a
ConcurrentModificationException to be thrown or lead to undefined behavior.
entries.remove(e);
^
(see https://errorprone.info/bugpattern/ModifyCollectionInEnhancedForLoop)
Bug: Issue 12677
Change-Id: I0fcd397950bb8ab2ef4069a9ce6158edc9fb129c
This commit is contained in:
committed by
David Pursehouse
parent
849bdfb392
commit
05aa0864dc
@@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableList;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.gerrit.metrics.Description;
|
import com.google.gerrit.metrics.Description;
|
||||||
import com.google.gerrit.metrics.Field;
|
import com.google.gerrit.metrics.Field;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/** Abstract callback metric broken down into buckets. */
|
/** Abstract callback metric broken down into buckets. */
|
||||||
@@ -67,10 +67,11 @@ abstract class BucketedCallback<V> implements BucketedMetric {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void doPrune() {
|
void doPrune() {
|
||||||
Set<Map.Entry<Object, BucketedCallback<V>.ValueGauge>> entries = cells.entrySet();
|
Iterator<Map.Entry<Object, ValueGauge>> it = cells.entrySet().iterator();
|
||||||
for (Map.Entry<Object, ValueGauge> e : entries) {
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<Object, ValueGauge> e = it.next();
|
||||||
if (!e.getValue().set) {
|
if (!e.getValue().set) {
|
||||||
entries.remove(e);
|
it.remove();
|
||||||
registry.remove(submetric(e.getKey()));
|
registry.remove(submetric(e.getKey()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user