alshabib
Committed by Gerrit Code Review

switching ConcurrentHashSet in mcastdata to ConcurrentHashMap due to serialization issues.

Change-Id: Ic38a82353fe8ab0dce03e5643090c08df1e53146
...@@ -16,9 +16,10 @@ ...@@ -16,9 +16,10 @@
16 package org.onosproject.incubator.store.mcast.impl; 16 package org.onosproject.incubator.store.mcast.impl;
17 17
18 import com.google.common.collect.ImmutableSet; 18 import com.google.common.collect.ImmutableSet;
19 +import com.google.common.collect.Maps;
19 import org.onosproject.net.ConnectPoint; 20 import org.onosproject.net.ConnectPoint;
20 21
21 -import java.util.HashSet; 22 +import java.util.Map;
22 import java.util.Set; 23 import java.util.Set;
23 import java.util.concurrent.atomic.AtomicBoolean; 24 import java.util.concurrent.atomic.AtomicBoolean;
24 import java.util.concurrent.atomic.AtomicReference; 25 import java.util.concurrent.atomic.AtomicReference;
...@@ -33,20 +34,17 @@ public final class MulticastData { ...@@ -33,20 +34,17 @@ public final class MulticastData {
33 34
34 private final AtomicReference<ConnectPoint> source = 35 private final AtomicReference<ConnectPoint> source =
35 new AtomicReference<>(); 36 new AtomicReference<>();
36 - private final Set<ConnectPoint> sinks; 37 + private final Map<ConnectPoint, Boolean> sinks;
37 private final AtomicBoolean isEmpty = new AtomicBoolean(); 38 private final AtomicBoolean isEmpty = new AtomicBoolean();
38 39
39 private MulticastData() { 40 private MulticastData() {
40 - // FIXME we have major problems trying to serialize these sets 41 + this.sinks = Maps.newConcurrentMap();
41 - //this.sinks = Sets.newConcurrentHashSet();
42 - this.sinks = new HashSet<>();
43 isEmpty.set(true); 42 isEmpty.set(true);
44 } 43 }
45 44
46 public MulticastData(ConnectPoint source) { 45 public MulticastData(ConnectPoint source) {
47 this.source.set(checkNotNull(source, "Multicast source cannot be null.")); 46 this.source.set(checkNotNull(source, "Multicast source cannot be null."));
48 - //this.sinks = Sets.newConcurrentHashSet(); 47 + this.sinks = Maps.newConcurrentMap();
49 - this.sinks = new HashSet<>();
50 isEmpty.set(false); 48 isEmpty.set(false);
51 } 49 }
52 50
...@@ -55,7 +53,7 @@ public final class MulticastData { ...@@ -55,7 +53,7 @@ public final class MulticastData {
55 } 53 }
56 54
57 public Set<ConnectPoint> sinks() { 55 public Set<ConnectPoint> sinks() {
58 - return ImmutableSet.copyOf(sinks); 56 + return ImmutableSet.copyOf(sinks.keySet());
59 } 57 }
60 58
61 public void setSource(ConnectPoint source) { 59 public void setSource(ConnectPoint source) {
...@@ -65,7 +63,7 @@ public final class MulticastData { ...@@ -65,7 +63,7 @@ public final class MulticastData {
65 63
66 public void appendSink(ConnectPoint sink) { 64 public void appendSink(ConnectPoint sink) {
67 checkNotNull(sink); 65 checkNotNull(sink);
68 - sinks.add(sink); 66 + sinks.put(sink, true);
69 } 67 }
70 68
71 public boolean removeSink(ConnectPoint sink) { 69 public boolean removeSink(ConnectPoint sink) {
......