Исправление ошибки ConcurrentModificationException при множестве потоков

This commit is contained in:
RoyceDa
2026-03-20 19:41:02 +02:00
parent 163d66d0b0
commit 2e8508a32c
3 changed files with 20 additions and 25 deletions

View File

@@ -1,7 +1,7 @@
package im.rosetta.client;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import im.rosetta.client.tags.ECIAuthentificate;
@@ -33,7 +33,7 @@ public class ClientManager {
}
public boolean isClientConnected(String publicKey) {
HashSet<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
Set<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
if(clients == null){
/**
* Нет клиентов с таким публичным ключом
@@ -59,7 +59,7 @@ public class ClientManager {
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
*/
public void sendPacketToAuthorizedPK(String publicKey, Packet packet) throws ProtocolException {
HashSet<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
Set<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
if(clients == null){
/**
* Нет клиентов с таким публичным ключом, значит отправлять некому
@@ -91,7 +91,7 @@ public class ClientManager {
*/
public void retranslate(Client client, Packet packet) throws ProtocolException{
ECIAuthentificate eciAuthentificate = client.getTag(ECIAuthentificate.class);
HashSet<Client> clients = this.clientIndexer
Set<Client> clients = this.clientIndexer
.getClients(ECIAuthentificate.class, "publicKey", eciAuthentificate.getPublicKey());
if(clients == null){
/**
@@ -129,7 +129,7 @@ public class ClientManager {
* @return список клиентов с таким публичным ключом, может быть пустым, если клиентов с таким публичным ключом нет
*/
public List<Client> getPKClients(String publicKey) {
HashSet<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
Set<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
if(clients == null){
/**
* Нет клиентов с таким публичным ключом