From 9d9c2bf92a0d9705ea0581e2604b4d03b28488b7 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 14 Sep 2011 23:58:15 +0000 Subject: [PATCH] Fixing Concurrency problem in chat. --- .../main/java/com/gempukku/lotro/chat/ChatRoomMediator.java | 3 ++- gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js | 5 ++--- gemp-lotr/todo.txt | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java index b8720ff7a..12ac44f99 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java @@ -39,7 +39,8 @@ public class ChatRoomMediator { public synchronized void cleanup() { long currentTime = System.currentTimeMillis(); - for (Map.Entry playerListener : _listeners.entrySet()) { + Map copy = new HashMap(_listeners); + for (Map.Entry playerListener : copy.entrySet()) { String playerId = playerListener.getKey(); GatheringChatRoomListener listener = playerListener.getValue(); if (currentTime > listener.getLastConsumed().getTime() + _channelInactivityTimeoutPeriod) { diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js index bafdc834d..5d9d21d43 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js @@ -106,6 +106,7 @@ var GempLotrGameUI = Class.extend({ this.gameStateElem.append("
"); + this.gameStateElem.append("
0
"); this.gameStateElem.append("Phases:
"); this.gameStateElem.append("
Fellowship
"); this.gameStateElem.append("
Shadow
"); @@ -115,8 +116,6 @@ var GempLotrGameUI = Class.extend({ this.gameStateElem.append("
Skirmish
"); this.gameStateElem.append("
Regroup
"); - this.gameStateElem.append("
0
"); - $("#main").append(this.gameStateElem); this.alert = $("
"); @@ -252,7 +251,7 @@ var GempLotrGameUI = Class.extend({ var advPathWidth = Math.min(150, width * 0.1); var specialUiWidth = 150; - var alertHeight = 120; + var alertHeight = 80; var chatHeight = 200; diff --git a/gemp-lotr/todo.txt b/gemp-lotr/todo.txt index f975a13eb..402bb3c9d 100644 --- a/gemp-lotr/todo.txt +++ b/gemp-lotr/todo.txt @@ -3,13 +3,14 @@ TO DO: 18. Add display of site where player is on adventure path. 16. Add an option to view an ongoing game. +20. Display clock. 13. Add dead/discard pile displays. 14. Add hand/deck card count displays. 19. Add filtering cards to deck-builder. 4. Modify the Blueprint hierarchy to return possible return objects (PlayEventAction), TriggeredAction, etc. Use final methods were possible to avoid implementation errors on new cards added. 10. Add active/all cards switch to the user interface. -20. +21. DONE: 1. Introduce AbstractPermanent into Blueprint hierarchy.