Skip to content

Commit 5871667

Browse files
committed
Concurrenthashmap instead of null check
1 parent 1dafbfc commit 5871667

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

lib/src/main/java/ua/naiksoftware/stomp/client/StompClient.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.Map;
1212
import java.util.Set;
1313
import java.util.UUID;
14+
import java.util.concurrent.ConcurrentHashMap;
1415
import java.util.concurrent.CopyOnWriteArrayList;
1516

1617
import io.reactivex.BackpressureStrategy;
@@ -33,7 +34,7 @@ public class StompClient {
3334
public static final String DEFAULT_ACK = "auto";
3435

3536
private Disposable mMessagesDisposable;
36-
private Map<String, Set<FlowableEmitter<? super StompMessage>>> mEmitters = new HashMap<>();
37+
private Map<String, Set<FlowableEmitter<? super StompMessage>>> mEmitters = new ConcurrentHashMap<>();
3738
private List<ConnectableFlowable<Void>> mWaitConnectionFlowables;
3839
private final ConnectionProvider mConnectionProvider;
3940
private HashMap<String, String> mTopics;
@@ -177,16 +178,14 @@ public Flowable<StompMessage> topic(String destinationPath, List<StompHeader> he
177178
while (mapIterator.hasNext()) {
178179
String destinationUrl = mapIterator.next();
179180
Set<FlowableEmitter<? super StompMessage>> set = mEmitters.get(destinationUrl);
180-
if (null != set) {
181-
Iterator<FlowableEmitter<? super StompMessage>> setIterator = set.iterator();
182-
while (setIterator.hasNext()) {
183-
FlowableEmitter<? super StompMessage> subscriber = setIterator.next();
184-
if (subscriber.isCancelled()) {
185-
setIterator.remove();
186-
if (set.size() < 1) {
187-
mapIterator.remove();
188-
unsubscribePath(destinationUrl).subscribe();
189-
}
181+
Iterator<FlowableEmitter<? super StompMessage>> setIterator = set.iterator();
182+
while (setIterator.hasNext()) {
183+
FlowableEmitter<? super StompMessage> subscriber = setIterator.next();
184+
if (subscriber.isCancelled()) {
185+
setIterator.remove();
186+
if (set.size() < 1) {
187+
mapIterator.remove();
188+
unsubscribePath(destinationUrl).subscribe();
190189
}
191190
}
192191
}

0 commit comments

Comments
 (0)