From aed0216810bcc384a619e31bcbf3c7e70adb40f9 Mon Sep 17 00:00:00 2001 From: Devaraj Das Date: Fri, 28 Feb 2014 02:48:17 +0000 Subject: [PATCH 14/45] HBASE-10633. StoreFileRefresherChore throws ConcurrentModificationException sometimes git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/hbase-10070@1572808 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/hadoop/hbase/regionserver/StorefileRefresherChore.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java index aeec21f..ab8af7d 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.regionserver; import java.io.IOException; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import org.apache.commons.logging.Log; @@ -104,9 +105,11 @@ public class StorefileRefresherChore extends Chore { } // remove closed regions - for (String encodedName : lastRefreshTimes.keySet()) { + Iterator lastRefreshTimesIter = lastRefreshTimes.keySet().iterator(); + while (lastRefreshTimesIter.hasNext()) { + String encodedName = lastRefreshTimesIter.next(); if (regionServer.getFromOnlineRegions(encodedName) == null) { - lastRefreshTimes.remove(encodedName); + lastRefreshTimesIter.remove(); } } } -- 2.0.0