From 4e56e584b60a3c84c1fa1aa28230294a2e39b49a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Thu, 5 Feb 2015 22:43:51 +0100 Subject: [PATCH] * Fixed that PriorityTimer was not canceled. Added gaeId to Timer name. --- .../java/mage/client/game/PlayerPanelExt.java | 2 +- .../src/mage/utils/timer/PriorityTimer.java | 22 +++---------------- .../java/mage/server/game/GameController.java | 5 ++++- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java index cf22410c3cf..75b95a047c6 100644 --- a/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java +++ b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java @@ -141,7 +141,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { PlayerPanelExt.this.avatar.repaint(); } }); - timer.init(); + timer.init(gameId); } } diff --git a/Mage.Common/src/mage/utils/timer/PriorityTimer.java b/Mage.Common/src/mage/utils/timer/PriorityTimer.java index 31dd52276f0..e49a820c813 100644 --- a/Mage.Common/src/mage/utils/timer/PriorityTimer.java +++ b/Mage.Common/src/mage/utils/timer/PriorityTimer.java @@ -2,6 +2,7 @@ package mage.utils.timer; import java.util.Timer; import java.util.TimerTask; +import java.util.UUID; import mage.MageException; import mage.interfaces.Action; import org.apache.log4j.Logger; @@ -34,9 +35,9 @@ public class PriorityTimer extends TimerTask { this.taskOnTimeout = taskOnTimeout; } - public void init() { + public void init(UUID gameId) { state = States.INIT; - Timer timer = new Timer("Priority Timer", false); + Timer timer = new Timer("Priority Timer-" + gameId.toString(), false); long delayMs = delay * (int) (1000L / delay); timer.scheduleAtFixedRate(this, delayMs, delayMs); } @@ -105,21 +106,4 @@ public class PriorityTimer extends TimerTask { } } - public static void main(String[] args) throws Exception { - long delay = 250L; - int count = 5; - PriorityTimer timer = new PriorityTimer(count, delay, new Action() { - @Override - public void execute() throws MageException { - System.out.println("Exit"); - System.exit(0); - } - }); - timer.init(); - timer.start(); - Thread.sleep(2000); - timer.pause(); - Thread.sleep(3000); - timer.resume(); - } } diff --git a/Mage.Server/src/main/java/mage/server/game/GameController.java b/Mage.Server/src/main/java/mage/server/game/GameController.java index efcf3e22a57..525a8c43805 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameController.java +++ b/Mage.Server/src/main/java/mage/server/game/GameController.java @@ -141,6 +141,9 @@ public class GameController implements GameCallback { gameSessionPlayer.CleanUp(); } ChatManager.getInstance().destroyChatSession(chatId); + for(PriorityTimer priorityTimer: timers.values()) { + priorityTimer.cancel(); + } } private void init() { @@ -301,7 +304,7 @@ public class GameController implements GameCallback { PriorityTimer timer = new PriorityTimer(count, delayMs, executeOnNoTimeLeft); timers.put(playerId, timer); - timer.init(); + timer.init(game.getId()); return timer; }