Author: sebawagner
Date: Fri Nov 30 08:33:28 2012
New Revision: 1415539

URL: http://svn.apache.org/viewvc?rev=1415539&view=rev
Log:
OPENMEETINGS-460 Fixes lists to be updated only once, fixes lists to be cleaned 
up correctly, extend JUnit Test case

Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1415539&r1=1415538&r2=1415539&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
 Fri Nov 30 08:33:28 2012
@@ -501,7 +501,7 @@ public class RoomWebService {
                                        
rCountBean.setMaxUser(room.getNumberOfPartizipants()
                                                        .intValue());
                                        
rCountBean.setRoomCount(clientListManager
-                                                       
.getClientListByRoom(room.getRooms_id()).size());
+                                                       
.getClientListByRoom(room.getRooms_id(), null).size());
 
                                        roomsArray[i] = rCountBean;
                                        i++;
@@ -569,7 +569,7 @@ public class RoomWebService {
                                roomReturn.setRoom_id(room.getRooms_id());
 
                                List<RoomClient> map = clientListManager
-                                               
.getClientListByRoom(room.getRooms_id());
+                                               
.getClientListByRoom(room.getRooms_id(), null);
 
                                RoomUser[] roomUsers = new RoomUser[map.size()];
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java?rev=1415539&r1=1415538&r2=1415539&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
 Fri Nov 30 08:33:28 2012
@@ -484,7 +484,7 @@ public class Sessionmanagement {
         */
        public void clearSessionByRoomId(Long room_id) {
                try {
-                       for (RoomClient rcl : 
clientListManager.getClientListByRoom(room_id)) {
+                       for (RoomClient rcl : 
clientListManager.getClientListByRoom(room_id, null)) {
                                String aux = rcl.getSwfurl();
 
                                int init_pos = aux.indexOf("sid=") + 4;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java?rev=1415539&r1=1415538&r2=1415539&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
 Fri Nov 30 08:33:28 2012
@@ -173,7 +173,7 @@ public class Roommanagement {
                                Rooms room = roomDao.get(rooms_id);
 
                                if (room != null) {
-                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id()));
+                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id(), 
null));
 
                                        return room;
                                }
@@ -259,7 +259,7 @@ public class Roommanagement {
                                                asc);
 
                                for (Rooms room : rooms) {
-                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id()));
+                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id(), 
null));
                                }
 
                                sResult.setResult(rooms);
@@ -280,7 +280,7 @@ public class Roommanagement {
                                                asc);
 
                                for (Rooms room : rooms) {
-                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id()));
+                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id(), 
null));
                                }
 
                                return rooms;
@@ -302,7 +302,7 @@ public class Roommanagement {
                                                orderby, asc, externalRoomType);
 
                                for (Rooms room : rooms) {
-                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id()));
+                                       
room.setCurrentusers(clientListManager.getClientListByRoom(room.getRooms_id(), 
null));
                                }
 
                                return rooms;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java?rev=1415539&r1=1415538&r2=1415539&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
 Fri Nov 30 08:33:28 2012
@@ -1636,7 +1636,7 @@ public class Usermanagement {
 
                                sessionManagement.clearSessionByRoomId(room_id);
 
-                               for (RoomClient rcl : 
clientListManager.getClientListByRoom(room_id)) {
+                               for (RoomClient rcl : 
clientListManager.getClientListByRoom(room_id, null)) {
                                        if (rcl == null) {
                                                return true;
                                        }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java?rev=1415539&r1=1415538&r2=1415539&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java
 Fri Nov 30 08:33:28 2012
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertTru
 
 import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Random;
@@ -44,6 +45,10 @@ public class TestHashMapStore extends Ab
                for (int i = 0; i < localSessions; i++) {
                        this.sessionManager.addClientListItem("streamId" + i, 
"hibernate",
                                        123, "localhost", "", false);
+                       
+                       RoomClient rcl = 
this.sessionManager.getClientByStreamId("streamId" + i, null);
+                       rcl.setUser_id(Long.parseLong(""+i));
+                       this.sessionManager.updateClientByStreamId("streamId" + 
i, rcl, false);
                }
 
                long roomId = 1L;
@@ -89,7 +94,7 @@ public class TestHashMapStore extends Ab
                assertEquals(rcl.getStreamid(), compareRcl.getStreamid());
                assertEquals(rcl.getPublicSID(), compareRcl.getPublicSID());
 
-               List<RoomClient> clientsByRoom = 
sessionManager.getClientListByRoom(1L);
+               List<RoomClient> clientsByRoom = 
sessionManager.getClientListByRoom(1L, null);
 
                log.debug("clientsByRoom SIZE " + clientsByRoom.size());
 
@@ -117,7 +122,7 @@ public class TestHashMapStore extends Ab
                        log.debug("rSession "+rSession);
                }
                
-               RoomClient rcl2 = 
sessionManager.getClientByStreamId("streamId50", testServer);
+               RoomClient rcl2 = 
sessionManager.getClientByStreamId("streamId1050", testServer);
                log.debug("rcl2 " + rcl2);
                RoomClient compareRcl2 = sessionManager.getClientByPublicSID(
                                rcl2.getPublicSID(), rcl2.getIsAVClient(), 
testServer);
@@ -140,12 +145,46 @@ public class TestHashMapStore extends Ab
                RoomClient deletedNullClient = 
sessionManager.getClientByPublicSID(
                                rclRemove.getPublicSID(), 
rclRemove.getIsAVClient(), null);
                
+               log.debug("rclRemove: "+ rclRemove);
+               
                if (deletedNullClient != null) {
                        log.debug("deletedNullClient "+deletedNullClient);
                }
                
                assertNull(deletedNullClient);
                
+               sessionManager.getCache().printDebugInformation(
+                               Arrays.asList(HashMapStore.DEBUG_DETAILS.SIZE,
+                                               
HashMapStore.DEBUG_DETAILS.CLIENT_BY_STREAMID,
+                                               
HashMapStore.DEBUG_DETAILS.CLIENT_BY_PUBLICSID,
+                                               
HashMapStore.DEBUG_DETAILS.CLIENT_BY_USERID,
+                                               
HashMapStore.DEBUG_DETAILS.CLIENT_BY_ROOMID));
+               
+               Server s1 = new Server();
+               s1.setId(1L);
+               Server s2 = new Server();
+               s2.setId(2L);
+               Server s3 = new Server();
+               s3.setId(3L);
+               Server s4 = new Server();
+               s4.setId(4L);
+               
+               //Check if number of total sessions is same as sum of all 
sessions across all rooms
+               int roomSession = sessionManager.getClientListByRoomAll(1L, 
null).size()
+                               + sessionManager.getClientListByRoomAll(2L, 
null).size()
+                               + sessionManager.getClientListByRoomAll(3L, 
s1).size()
+                               + sessionManager.getClientListByRoomAll(4L, 
s2).size()
+                               + sessionManager.getClientListByRoomAll(5L, 
s3).size()
+                               + sessionManager.getClientListByRoomAll(6L, 
s4).size()
+                               ;
+               log.debug("Room Id 2 Number of Sessions: 
"+sessionManager.getClientListByRoomAll(2L, s1).size());
+               log.debug("Room Id 3 Number of Sessions: 
"+sessionManager.getClientListByRoomAll(3L, s1).size());
+               log.debug("Room Id 4 Number of Sessions: 
"+sessionManager.getClientListByRoomAll(4L, s1).size());
+               log.debug("Room Id 5 Number of Sessions: 
"+sessionManager.getClientListByRoomAll(5L, s1).size());
+               log.debug("roomSession: "+roomSession);
+               
+               assertEquals(roomSession, 
sessionManager.getCache().getTotalNumberOfSessions());
+
        }
 
        private void addSyncClients(long serverId) {
@@ -160,9 +199,9 @@ public class TestHashMapStore extends Ab
                        Long userId = (1000 * serverId) + i + add;
 
                        SlaveClientDto slaveDto = new SlaveClientDto( //
-                                       "streamId" + i, //
+                                       "streamId" + ((1000 * serverId) + i), //
                                        "publicSID_" + serverId + "_" + i, //
-                                       new Long(2), //
+                                       new Long(2+serverId), //
                                        userId, //
                                        "firstName" + i, //
                                        "lastName" + i, //


Reply via email to