23 package com.realtime.crossfire.jxclient.metaserver;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.List;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
46 private final List<MetaserverEntry>
metaList =
new ArrayList<>();
59 private final Object
sync =
new Object();
85 }
catch (
final IndexOutOfBoundsException ignored) {
99 if (metaserverEntry.getHostname().equals(serverName)) {
115 synchronized (
sync) {
125 synchronized (
sync) {
141 final int oldMetaListSize;
142 final int newMetaListSize;
143 synchronized (
sync) {
153 metaserverListener.numberOfEntriesChanged();
156 for (
int i = 0, iMax = Math.max(oldMetaListSize, newMetaListSize); i < iMax; i++) {
158 metaserverEntryListener.entryChanged();
206 if (existingListeners !=
null) {
207 return existingListeners;