From 474be7bd67d4ab0c8f47a15c8b54acce34c76d69 Mon Sep 17 00:00:00 2001 From: Jetz Date: Thu, 26 Sep 2024 12:01:17 -0400 Subject: [PATCH] Fix ConcurrentModificationException --- .../limited/CardThemedDeckBuilder.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java index a54a2caa3fd..0079384ef58 100644 --- a/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java @@ -319,17 +319,13 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { //Add remaining non-land colour matching cards to sideboard final CardPool cp = result.getOrCreate(DeckSection.Sideboard); - Iterator potentialSideboard = aiPlayables.stream() - .filter(PaperCardPredicates.fromRules(hasColor.and(CardRulesPredicates.IS_NON_LAND))).iterator(); - int i=0; - while(i<15 && potentialSideboard.hasNext()){ - PaperCard sbCard = potentialSideboard.next(); - cp.add(sbCard); - aiPlayables.remove(sbCard); - rankedColorList.remove(sbCard); - - ++i; - } + List sideboard = aiPlayables.stream() + .filter(PaperCardPredicates.fromRules(hasColor.and(CardRulesPredicates.IS_NON_LAND))) + .limit(15) + .collect(Collectors.toList()); + cp.addAllFlat(sideboard); + aiPlayables.removeAll(sideboard); + rankedColorList.removeAll(sideboard); if (logToConsole) { debugFinalDeck(); }