Skip to content

Commit 3cb261f

Browse files
Fix ConcurrentModificationException in PacketListenerSet (#3241)
1 parent 7338183 commit 3cb261f

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/main/java/com/comphenix/protocol/injector/collection/PacketListenerSet.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.comphenix.protocol.injector.collection;
22

3+
import java.util.Iterator;
34
import java.util.Set;
45

56
import javax.annotation.Nullable;
@@ -45,7 +46,9 @@ public PacketListenerSet(PacketTypeListenerSet mainThreadPacketTypes, ErrorRepor
4546
public void addListener(PacketListener packetListener) {
4647
ListeningWhitelist listeningWhitelist = getListeningWhitelist(packetListener);
4748

48-
for (PacketType packetType : listeningWhitelist.getTypes()) {
49+
for (Iterator<PacketType> packet = listeningWhitelist.getTypes().iterator(); packet.hasNext();) {
50+
PacketType packetType = packet.next();
51+
4952
Set<PacketType> supportedPacketTypes = (packetType.getSender() == Sender.SERVER)
5053
? PacketRegistry.getServerPacketTypes()
5154
: PacketRegistry.getClientPacketTypes();
@@ -56,7 +59,7 @@ public void addListener(PacketListener packetListener) {
5659
.build());
5760

5861
// remove unknown packet types
59-
listeningWhitelist.getTypes().remove(packetType);
62+
packet.remove();
6063
}
6164
}
6265

0 commit comments

Comments
 (0)