You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2013/06/07 23:24:58 UTC

git commit: VYSPER-336: fix resource state change to 'interested'

Updated Branches:
  refs/heads/master 7b43aa87a -> ac329ae73


VYSPER-336: fix resource state change to 'interested'


Project: http://git-wip-us.apache.org/repos/asf/mina-vysper/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-vysper/commit/ac329ae7
Tree: http://git-wip-us.apache.org/repos/asf/mina-vysper/tree/ac329ae7
Diff: http://git-wip-us.apache.org/repos/asf/mina-vysper/diff/ac329ae7

Branch: refs/heads/master
Commit: ac329ae73f5471984c6fe6f0a1852e6e6fe13e87
Parents: 7b43aa8
Author: Bernd Fondermann <be...@brainlounge.de>
Authored: Fri Jun 7 23:22:59 2013 +0200
Committer: Bernd Fondermann <be...@brainlounge.de>
Committed: Fri Jun 7 23:22:59 2013 +0200

----------------------------------------------------------------------
 .../xmpp/state/resourcebinding/ResourceState.java  |   16 ++++++++++++--
 1 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-vysper/blob/ac329ae7/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceState.java
----------------------------------------------------------------------
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceState.java b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceState.java
index 88e3521..2e07abc 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceState.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceState.java
@@ -73,8 +73,18 @@ public enum ResourceState {
     }
 
     public static ResourceState makeInterested(ResourceState inState) {
-        if (inState == AVAILABLE)
-            return AVAILABLE_INTERESTED;
-        return CONNECTED_INTERESTED;
+        if (inState == null) return null; // cannot transfer to 'interested'
+        switch (inState) {
+            case CONNECTED:
+            case CONNECTED_INTERESTED:
+                return CONNECTED_INTERESTED;
+            case AVAILABLE:
+            case AVAILABLE_INTERESTED:
+                return AVAILABLE_INTERESTED;
+            case UNAVAILABLE:
+                return UNAVAILABLE;
+            default:
+                throw new IllegalStateException("unknown ResourceState in makeInterested(): " + inState);
+        }
     }
 }