diff --git a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java index f7573ac718d..c2166b34d4b 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java @@ -258,12 +258,8 @@ public class TableWaitingDialog extends MageDialog { private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed try { - if (session.isTableOwner(roomId, tableId)) { - session.removeTable(roomId, tableId); - } else { - if (!session.leaveTable(roomId, tableId)) { - return; // already started, so leave no more possible - } + if (!session.leaveTable(roomId, tableId)) { + return; // already started, so leave no more possible } } catch (Exception e) { //swallow exception diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index ff2c6bd43f9..303ea6f4d82 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -231,6 +231,10 @@ public class TableController { } sb.append("\n\nSelect a deck that is appropriate for the selected format and try again!"); user.showUserMessage("Join Table", sb.toString()); + if (isOwner(userId)) { + logger.debug("New table removed because owner submitted invalid deck tableId " + table.getId()); + TableManager.getInstance().removeTable(table.getId()); + } return false; } diff --git a/Mage/src/mage/game/Table.java b/Mage/src/mage/game/Table.java index ab72c78b11a..f2a11160848 100644 --- a/Mage/src/mage/game/Table.java +++ b/Mage/src/mage/game/Table.java @@ -136,7 +136,9 @@ public class Table implements Serializable { * */ public void closeTable() { - setState(TableState.FINISHED); + if (!getState().equals(TableState.WAITING) && !getState().equals(TableState.READY_TO_START)) { + setState(TableState.FINISHED); // otherwise the table can be removed completely + } this.validator = null; }