You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by be...@apache.org on 2008/04/09 09:27:55 UTC
svn commit: r646210 - in /labs/vysper/src:
main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java
test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java
Author: berndf
Date: Wed Apr 9 00:27:52 2008
New Revision: 646210
URL: http://svn.apache.org/viewvc?rev=646210&view=rev
Log:
[vysper] fix resource unbinding (LABS-111)
Modified:
labs/vysper/src/main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java
labs/vysper/src/test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java
Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java?rev=646210&r1=646209&r2=646210&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistry.java Wed Apr 9 00:27:52 2008
@@ -66,7 +66,14 @@
}
public void unbindResource(String resourceId) {
- boundResources.remove(resourceId);
+ synchronized (boundResources) {
+ synchronized (entityResources) {
+ SessionContext sessionContext = boundResources.get(resourceId);
+ List<String> resourceListForSession = getResourceList(sessionContext.getInitiatingEntity());
+ resourceListForSession.remove(resourceId);
+ boundResources.remove(resourceId);
+ }
+ }
}
public void unbindSession(SessionContext unbindingSessionContext) {
@@ -79,13 +86,13 @@
// actually remove from bound resources
for (String removeResourceId : removeResourceIds) {
- unbindResource(removeResourceId);
+ boundResources.remove(removeResourceId);
}
// actually remove from entity map
List<String> resourceList = getResourceList(unbindingSessionContext.getInitiatingEntity());
if (resourceList != null) {
- resourceList.remove(removeResourceIds);
+ resourceList.removeAll(removeResourceIds);
}
}
}
Modified: labs/vysper/src/test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java?rev=646210&r1=646209&r2=646210&view=diff
==============================================================================
--- labs/vysper/src/test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java (original)
+++ labs/vysper/src/test/java/org/apache/vysper/xmpp/resourcebinding/ResourceRegistryTestCase.java Wed Apr 9 00:27:52 2008
@@ -135,7 +135,7 @@
assertFalse(resourceId1.equals(resourceId2));
}
- public void testUnbindSimple() throws EntityFormatException {
+ public void testUnbindResourceSimple() throws EntityFormatException {
EntityImpl entity = EntityImpl.parse("me@test");
TestSessionContext sessionContext1 = createSessionContext(entity);
@@ -143,6 +143,19 @@
assertEquals(sessionContext1, resourceRegistry.getSessionContext(resourceId1));
resourceRegistry.unbindResource(resourceId1);
+
+ assertNull(resourceRegistry.getSessionContext(resourceId1));
+ assertEquals(0, resourceRegistry.getBoundResources(entity).size());
+ }
+
+ public void testUnbindSessionSimple() throws EntityFormatException {
+ EntityImpl entity = EntityImpl.parse("me@test");
+
+ TestSessionContext sessionContext1 = createSessionContext(entity);
+ String resourceId1 = resourceRegistry.bindSession(sessionContext1);
+ assertEquals(sessionContext1, resourceRegistry.getSessionContext(resourceId1));
+
+ resourceRegistry.unbindSession(sessionContext1);
assertNull(resourceRegistry.getSessionContext(resourceId1));
assertEquals(0, resourceRegistry.getBoundResources(entity).size());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org