Fix bad casting in StringMap

Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/a9dfc216
Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/a9dfc216
Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/a9dfc216

Branch: refs/heads/swellrt
Commit: a9dfc2164a91ccab2051479c2e72cb88ba1ab408
Parents: 481fe1f
Author: Pablo Ojanguren <pablo...@gmail.com>
Authored: Thu Sep 8 18:19:32 2016 +0200
Committer: Pablo Ojanguren <pablo...@gmail.com>
Committed: Thu Sep 8 18:19:32 2016 +0200

----------------------------------------------------------------------
 .../wave/model/util/CollectionUtils.java        | 31 ++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/a9dfc216/wave/src/main/java/org/waveprotocol/wave/model/util/CollectionUtils.java
----------------------------------------------------------------------
diff --git 
a/wave/src/main/java/org/waveprotocol/wave/model/util/CollectionUtils.java 
b/wave/src/main/java/org/waveprotocol/wave/model/util/CollectionUtils.java
index f35595e..9f251d1 100644
--- a/wave/src/main/java/org/waveprotocol/wave/model/util/CollectionUtils.java
+++ b/wave/src/main/java/org/waveprotocol/wave/model/util/CollectionUtils.java
@@ -19,6 +19,7 @@
 
 package org.waveprotocol.wave.model.util;
 
+import org.waveprotocol.wave.client.common.util.JsoStringSet;
 import org.waveprotocol.wave.model.util.ReadableStringMap.ProcV;
 
 import java.util.ArrayList;
@@ -515,12 +516,38 @@ public class CollectionUtils {
 
     @Override
     public void addAll(ReadableStringSet set) {
-      backend.addAll(((StringSetAdapter) set).backend);
+      
+      if (set instanceof StringSetAdapter) {
+        backend.addAll(((StringSetAdapter) set).backend);
+      } else if (set instanceof JsoStringSet) {
+        JsoStringSet jsoSet = (JsoStringSet) set;
+        jsoSet.each(new Proc() {
+
+          @Override
+          public void apply(String element) {
+            backend.add(element);            
+          }
+          
+        });
+      }
     }
 
     @Override
     public void removeAll(ReadableStringSet set) {
-      backend.removeAll(((StringSetAdapter) set).backend);
+      
+      if (set instanceof StringSetAdapter) {
+        backend.removeAll(((StringSetAdapter) set).backend);
+      } else if (set instanceof JsoStringSet) {
+        JsoStringSet jsoSet = (JsoStringSet) set;
+        jsoSet.each(new Proc() {
+
+          @Override
+          public void apply(String element) {
+            backend.remove(element);            
+          }
+          
+        });
+      }     
     }
 
     @Override

Reply via email to