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