From 7f66ae166f061e2873886ee5f2dac44e837da2f4 Mon Sep 17 00:00:00 2001 From: Sol Date: Wed, 23 Mar 2016 19:30:42 +0000 Subject: [PATCH] - Fix Concurrent Exception when trying to remove SpellAbilities immediately during an Animate (Unstable Frontier + most non-basics) --- .../main/java/forge/game/ability/effects/AnimateEffect.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java index 0b862b3d241..04503d92619 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java @@ -162,12 +162,16 @@ public class AnimateEffect extends AnimateEffectBase { for (final SpellAbility ab : c.getSpellAbilities()) { if (removeAll || (ab.isAbility() && clearAbilities) || (ab.isSpell() && clearSpells)) { - c.removeSpellAbility(ab); removedAbilities.add(ab); } } } + // Can't rmeove SAs in foreach loop that finds them + for (final SpellAbility ab : removedAbilities) { + c.removeSpellAbility(ab); + } + if (sa.hasParam("RemoveThisAbility") && !removedAbilities.contains(sa)) { c.removeSpellAbility(sa); removedAbilities.add(sa);