Author: sebawagner Date: Wed Dec 12 22:41:57 2012 New Revision: 1421033 URL: http://svn.apache.org/viewvc?rev=1421033&view=rev Log: OPENMEETINGS-460 Fixes user list in rooms list displays correctly also users logged'in into slave
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/cache/HashMapStore.java Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java?rev=1421033&r1=1421032&r2=1421033&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java Wed Dec 12 22:41:57 2012 @@ -118,7 +118,7 @@ public interface IClientList { * needed cause it is invoked internally AFTER the current user has been * already removed from the ClientList to see if the Room is empty again and * the PollList can be removed - * @param server TODO + * @param room_id * @return */ public abstract List<RoomClient> getClientListByRoom(Long room_id, Server server); Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/cache/HashMapStore.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/cache/HashMapStore.java?rev=1421033&r1=1421032&r2=1421033&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/cache/HashMapStore.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/cache/HashMapStore.java Wed Dec 12 22:41:57 2012 @@ -275,19 +275,24 @@ public class HashMapStore { /** * + * We ignore the server here, cause ONE room can only be on ONE server and often we don't know where. + * However at a later stage clients might be on different servers and still in the save room + * so we keep that parameter for now + * + * @param server * @param roomId * @return will return an empty map if nothing available */ public LinkedHashMap<String, RoomClient> getClientsByRoomId(Server server, Long roomId) { - LinkedHashMap<Long, LinkedHashMap<String, RoomClient>> clientsByRoomId = clientsByServerAndRoomId.get(getIdByServer(server)); - if (clientsByRoomId == null) { - return EMPTY_MAP; - } - LinkedHashMap<String, RoomClient> clients = clientsByRoomId.get(roomId); - if (clients == null) { - return EMPTY_MAP; + + for (Entry<Long, LinkedHashMap<Long, LinkedHashMap<String, RoomClient>>> entry : clientsByServerAndRoomId.entrySet()) { + LinkedHashMap<String, RoomClient> roomClients = entry.getValue().get(roomId); + if (roomClients != null) { + return roomClients; + } } - return clients; + + return EMPTY_MAP; } public void remove(Server server, String streamId) {