diff --git a/src/main/java/net/minestom/server/network/socket/Server.java b/src/main/java/net/minestom/server/network/socket/Server.java index 63ee8600a..68f0189e4 100644 --- a/src/main/java/net/minestom/server/network/socket/Server.java +++ b/src/main/java/net/minestom/server/network/socket/Server.java @@ -97,7 +97,10 @@ public final class Server { public void stop() { this.stop = true; try { - this.serverSocket.close(); + if(serverSocket != null) { + this.serverSocket.close(); + } + if (socketAddress instanceof UnixDomainSocketAddress unixDomainSocketAddress) { Files.deleteIfExists(unixDomainSocketAddress.getPath()); } diff --git a/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java b/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java index 4c67538b0..931fb9600 100644 --- a/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java +++ b/src/test/java/net/minestom/server/network/socket/ServerAddressTest.java @@ -26,7 +26,7 @@ public class ServerAddressTest { } @Test - public void unixAddressTest() throws IOException, InterruptedException { + public void unixAddressTest() throws IOException { UnixDomainSocketAddress address = UnixDomainSocketAddress.of("minestom.sock"); var server = new Server(new PacketProcessor()); server.init(address); @@ -39,4 +39,10 @@ public class ServerAddressTest { assertDoesNotThrow(server::stop); assertFalse(Files.exists(address.getPath()), "The socket file should be deleted"); } + + @Test + public void noAddressTest() throws IOException { + var server = new Server(new PacketProcessor()); + assertDoesNotThrow(server::stop); + } }