From a7ffaafcb04d257f4eeff87220880df4a61fe51d Mon Sep 17 00:00:00 2001 From: Marc Zwart Date: Thu, 29 Mar 2018 13:53:59 +0200 Subject: [PATCH 1/2] made close call safe --- Mage.Client/src/main/java/org/mage/card/arcane/Util.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java index 2645c314dbb..cbc3af717bd 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java @@ -1,5 +1,7 @@ package org.mage.card.arcane; +import mage.util.StreamUtils; + import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; @@ -42,7 +44,7 @@ public final class Util { socket = new DatagramSocket(); broadcast(socket, data, port, NetworkInterface.getNetworkInterfaces()); } finally { - socket.close(); + StreamUtils.closeQuietly(socket); } } From fed2f317894b3879fe18f36c4a3821f385c3d0b6 Mon Sep 17 00:00:00 2001 From: Marc Zwart Date: Thu, 29 Mar 2018 13:56:10 +0200 Subject: [PATCH 2/2] set lock calls back to original place as per request --- Mage.Server/src/main/java/mage/server/ChatSession.java | 2 +- Mage.Server/src/main/java/mage/server/UserManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Mage.Server/src/main/java/mage/server/ChatSession.java b/Mage.Server/src/main/java/mage/server/ChatSession.java index e73c0410f15..da9b897f7e7 100644 --- a/Mage.Server/src/main/java/mage/server/ChatSession.java +++ b/Mage.Server/src/main/java/mage/server/ChatSession.java @@ -90,8 +90,8 @@ public class ChatSession { String userName = clients.get(userId); if (reason != DisconnectReason.LostConnection) { // for lost connection the user will be reconnected or session expire so no removeUserFromAllTablesAndChat of chat yet final Lock w = lock.writeLock(); + w.lock(); try { - w.lock(); clients.remove(userId); } finally { w.unlock(); diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 767f7bb59a5..cd30111745a 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -231,8 +231,8 @@ public enum UserManager { } logger.debug("Users to remove " + toRemove.size()); final Lock w = lock.readLock(); + w.lock(); try { - w.lock(); for (User user : toRemove) { users.remove(user.getId()); }