Committed by
Gerrit Code Review
switching ConcurrentHashSet in mcastdata to ConcurrentHashMap due to serialization issues.
Change-Id: Ic38a82353fe8ab0dce03e5643090c08df1e53146
Showing
1 changed file
with
7 additions
and
9 deletions
... | @@ -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) { | ... | ... |
-
Please register or login to post a comment