Fix a rare crash with a concurrent modification of scaled health attributes (#12002)

This commit is contained in:
TomTom 2025-01-22 19:58:44 +01:00 committed by GitHub
parent 6b7650d81b
commit 30046e0410
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -2858,9 +2859,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (!this.scaledHealth && !force) { if (!this.scaledHealth && !force) {
return; return;
} }
for (AttributeInstance genericInstance : collection) { Iterator<AttributeInstance> iterator = collection.iterator();
while (iterator.hasNext()) {
AttributeInstance genericInstance = iterator.next();
if (genericInstance.getAttribute() == Attributes.MAX_HEALTH) { if (genericInstance.getAttribute() == Attributes.MAX_HEALTH) {
collection.remove(genericInstance); iterator.remove();
break; break;
} }
} }