Skip to content

Commit 2b9261a

Browse files
committed
8273894: ConcurrentModificationException raised every time ReferralsCache drops referral
Backport-of: 2166ed136917bb68f8155a25e4f4a6c5c7115566
1 parent a2bd0a9 commit 2b9261a

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)