From 298b27f57b1947b202cffd9ea5520f39206249d3 Mon Sep 17 00:00:00 2001 From: James Elliott Date: Tue, 7 May 2024 21:44:15 -0500 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20ask=20Opus=20Quad=20for=20datab?= =?UTF-8?q?ase=20server=20port?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beatlink/dbserver/ConnectionManager.java | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/deepsymmetry/beatlink/dbserver/ConnectionManager.java b/src/main/java/org/deepsymmetry/beatlink/dbserver/ConnectionManager.java index 080470b7..76d27f35 100644 --- a/src/main/java/org/deepsymmetry/beatlink/dbserver/ConnectionManager.java +++ b/src/main/java/org/deepsymmetry/beatlink/dbserver/ConnectionManager.java @@ -41,17 +41,17 @@ public interface ClientTask { /** * Keeps track of the clients that are currently active, indexed by player number */ - private final Map openClients = new ConcurrentHashMap(); + private final Map openClients = new ConcurrentHashMap<>(); /** * Keeps track of how many tasks are currently using each client. */ - private final Map useCounts = new ConcurrentHashMap(); + private final Map useCounts = new ConcurrentHashMap<>(); /** * Keeps track of the last time each client was used, so we can time out our connection. */ - private final Map timestamps = new ConcurrentHashMap(); + private final Map timestamps = new ConcurrentHashMap<>(); /** * How many seconds do we allow an idle connection to stay open? @@ -200,7 +200,7 @@ public T invokeWithClientSession(int targetPlayer, ClientTask task, Strin /** * Keeps track of the database server ports of all the players we have seen on the network. */ - private final Map dbServerPorts = new ConcurrentHashMap(); + private final Map dbServerPorts = new ConcurrentHashMap<>(); /** * Look up the database server port reported by a given player. You should not use this port directly; instead @@ -229,13 +229,9 @@ public int getPlayerDBServerPort(int player) { private final DeviceAnnouncementListener announcementListener = new DeviceAnnouncementListener() { @Override public void deviceFound(final DeviceAnnouncement announcement) { - // logger.info("Processing device found, number: " + announcement.getNumber() + ", name: " + announcement.getName()); - new Thread(new Runnable() { - @Override - public void run() { - requestPlayerDBServerPort(announcement); - } - }).start(); + if (VirtualCdj.getInstance().inOpusQuadCompatibilityMode()) return; // Nothing to do with Opus Quad. + logger.debug("Processing device found, number: {}, name: {}", announcement.getDeviceNumber(), announcement.getDeviceName()); + new Thread(() -> requestPlayerDBServerPort(announcement)).start(); } @Override @@ -461,11 +457,11 @@ public void stopped(LifecycleParticipant sender) { * idle timeout, and closes them. */ private synchronized void closeIdleClients() { - List candidates = new LinkedList(openClients.values()); + List candidates = new LinkedList<>(openClients.values()); logger.debug("Scanning for idle clients; " + candidates.size() + " candidates."); for (Client client : candidates) { if ((useCounts.get(client) < 1) && - ((timestamps.get(client) + idleLimit.get() * 1000) <= System.currentTimeMillis())) { + ((timestamps.get(client) + idleLimit.get() * 1000L) <= System.currentTimeMillis())) { logger.debug("Idle time reached for unused client {}", client); closeClient(client); } @@ -486,20 +482,17 @@ public synchronized void start() throws SocketException { announcementListener.deviceFound(device); } - new Thread(null, new Runnable() { - @Override - public void run() { - while (isRunning()) { - try { - //noinspection BusyWait - Thread.sleep(500); - } catch (InterruptedException e) { - logger.warn("Interrupted sleeping to close idle dbserver clients"); - } - closeIdleClients(); + new Thread(null, () -> { + while (isRunning()) { + try { + //noinspection BusyWait + Thread.sleep(500); + } catch (InterruptedException e) { + logger.warn("Interrupted sleeping to close idle dbserver clients"); } - logger.info("Idle dbserver client closer shutting down."); + closeIdleClients(); } + logger.info("Idle dbserver client closer shutting down."); }, "Idle dbserver client closer").start(); running.set(true);