From 69563e6c0d7fd7998334df8a3d98181a31283427 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Fri, 18 Jan 2013 14:14:02 +0000 Subject: [PATCH] Giving direct access to GatheringChatRoomListener. --- .../lotro/async/handler/ChatRequestHandler.java | 4 ++-- .../gempukku/lotro/chat/ChatRoomMediator.java | 16 ++-------------- .../lotro/game/GatheringChatRoomListener.java | 2 +- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/ChatRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/ChatRequestHandler.java index 72040bd10..b74f8240f 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/ChatRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/ChatRequestHandler.java @@ -89,7 +89,7 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri @Override public boolean isChanged() { try { - return _chatRoom.hasPendingMessages(_playerId); + return _chatRoom.getChatRoomListener(_playerId).hasMessages(); } catch (SubscriptionExpiredException e) { return true; } @@ -98,7 +98,7 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri @Override public void process() { try { - List chatMessages = _chatRoom.getPendingMessages(_playerId); + List chatMessages = _chatRoom.getChatRoomListener(_playerId).consumeMessages(); Collection usersInRoom = _chatRoom.getUsersInRoom(); 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 c3111cd2d..90b303d08 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 @@ -46,25 +46,13 @@ public class ChatRoomMediator { } } - public boolean hasPendingMessages(String playerId) throws SubscriptionExpiredException { + public GatheringChatRoomListener getChatRoomListener(String playerId) throws SubscriptionExpiredException { _lock.readLock().lock(); try { GatheringChatRoomListener gatheringChatRoomListener = _listeners.get(playerId); if (gatheringChatRoomListener == null) throw new SubscriptionExpiredException(); - return gatheringChatRoomListener.hasMessages(); - } finally { - _lock.readLock().unlock(); - } - } - - public List getPendingMessages(String playerId) throws SubscriptionExpiredException { - _lock.readLock().lock(); - try { - GatheringChatRoomListener gatheringChatRoomListener = _listeners.get(playerId); - if (gatheringChatRoomListener == null) - throw new SubscriptionExpiredException(); - return gatheringChatRoomListener.consumeMessages(); + return gatheringChatRoomListener; } finally { _lock.readLock().unlock(); } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GatheringChatRoomListener.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GatheringChatRoomListener.java index 480443720..4c0b21530 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GatheringChatRoomListener.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/GatheringChatRoomListener.java @@ -27,7 +27,7 @@ public class GatheringChatRoomListener implements ChatRoomListener { return _messages.size()>0; } - private void updateLastAccess() { + private synchronized void updateLastAccess() { _lastConsumed = System.currentTimeMillis(); }