From faafa3f8be1d06ad7ee2523245c079e12da5d2a2 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 24 Sep 2013 11:16:27 +0200 Subject: [PATCH] Fixed some possible NPE in MageServerImpl (Fixes #342). --- .../main/java/mage/server/MageServerImpl.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index a043f79988b..83e29312e9c 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -219,7 +219,12 @@ public class MageServerImpl implements MageServer { //FIXME: why no sessionId here??? public List getTables(UUID roomId) throws MageException { try { - return GamesRoomManager.getInstance().getRoom(roomId).getTables(); + GamesRoom room = GamesRoomManager.getInstance().getRoom(roomId); + if (room != null) { + return room.getTables(); + } else { + return null; + } } catch (Exception ex) { handleException(ex); @@ -231,7 +236,12 @@ public class MageServerImpl implements MageServer { //FIXME: why no sessionId here??? public List getFinishedMatches(UUID roomId) throws MageException { try { - return GamesRoomManager.getInstance().getRoom(roomId).getFinished(); + GamesRoom room = GamesRoomManager.getInstance().getRoom(roomId); + if (room != null) { + return room.getFinished(); + } else { + return null; + } } catch (Exception ex) { handleException(ex); @@ -243,7 +253,12 @@ public class MageServerImpl implements MageServer { //FIXME: why no sessionId here??? public List getConnectedPlayers(UUID roomId) throws MageException { try { - return GamesRoomManager.getInstance().getRoom(roomId).getPlayers(); + GamesRoom room = GamesRoomManager.getInstance().getRoom(roomId); + if (room != null) { + return room.getPlayers(); + } else { + return null; + } } catch (Exception ex) { handleException(ex); @@ -255,7 +270,12 @@ public class MageServerImpl implements MageServer { //FIXME: why no sessionId here??? public TableView getTable(UUID roomId, UUID tableId) throws MageException { try { - return GamesRoomManager.getInstance().getRoom(roomId).getTable(tableId); + GamesRoom room = GamesRoomManager.getInstance().getRoom(roomId); + if (room != null) { + return room.getTable(tableId); + } else { + return null; + } } catch (Exception ex) { handleException(ex);