Skip to content

Commit 2166ed1

Browse files
committed
8273894: ConcurrentModificationException raised every time ReferralsCache drops referral
Reviewed-by: shade
1 parent 1c6fa11 commit 2166ed1

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/java.security.jgss/share/classes/sun/security/krb5/internal/ReferralsCache.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.Arrays;
2929
import java.util.Date;
3030
import java.util.HashMap;
31+
import java.util.Iterator;
3132
import java.util.LinkedList;
3233
import java.util.List;
3334
import java.util.Map;
@@ -174,10 +175,11 @@ private static void pruneExpired(ReferralCacheKey k) {
174175
Date now = new Date();
175176
Map<String, ReferralCacheEntry> entries = referralsMap.get(k);
176177
if (entries != null) {
177-
for (Entry<String, ReferralCacheEntry> mapEntry :
178-
entries.entrySet()) {
178+
Iterator<Entry<String, ReferralCacheEntry>> it = entries.entrySet().iterator();
179+
while (it.hasNext()) {
180+
Entry<String, ReferralCacheEntry> mapEntry = it.next();
179181
if (mapEntry.getValue().getCreds().getEndTime().before(now)) {
180-
entries.remove(mapEntry.getKey());
182+
it.remove();
181183
}
182184
}
183185
}

0 commit comments

Comments
 (0)