Skip to content

Commit 3c0f788

Browse files
committed
Merge 1.0.x into master
Signed-off-by: Oleh Dokuka <[email protected]> Signed-off-by: Oleh Dokuka <[email protected]>
2 parents 7e8b785 + b8c7c2e commit 3c0f788

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

rsocket-core/src/main/java/io/rsocket/core/RSocketRequester.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import io.rsocket.keepalive.KeepAliveSupport;
3636
import io.rsocket.plugins.RequestInterceptor;
3737
import java.nio.channels.ClosedChannelException;
38+
import java.util.ArrayList;
39+
import java.util.Collection;
3840
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
3941
import java.util.function.Function;
4042
import java.util.function.Supplier;
@@ -344,8 +346,9 @@ private void terminate(Throwable e) {
344346
}
345347

346348
synchronized (this) {
347-
for (IntObjectMap.PrimitiveEntry<FrameHandler> entry : activeStreams.entries()) {
348-
FrameHandler handler = entry.value();
349+
final IntObjectMap<FrameHandler> activeStreams = this.activeStreams;
350+
final Collection<FrameHandler> activeStreamsCopy = new ArrayList<>(activeStreams.values());
351+
for (FrameHandler handler : activeStreamsCopy) {
349352
if (handler != null) {
350353
try {
351354
handler.handleError(e);

rsocket-core/src/main/java/io/rsocket/core/RSocketResponder.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import io.rsocket.frame.decoder.PayloadDecoder;
3434
import io.rsocket.plugins.RequestInterceptor;
3535
import java.nio.channels.ClosedChannelException;
36+
import java.util.ArrayList;
37+
import java.util.Collection;
3638
import java.util.concurrent.CancellationException;
3739
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
3840
import java.util.function.Function;
@@ -184,8 +186,9 @@ final void doOnDispose() {
184186
}
185187

186188
private synchronized void cleanUpSendingSubscriptions() {
187-
for (IntObjectMap.PrimitiveEntry<FrameHandler> entry : activeStreams.entries()) {
188-
FrameHandler handler = entry.value();
189+
final IntObjectMap<FrameHandler> activeStreams = this.activeStreams;
190+
final Collection<FrameHandler> activeStreamsCopy = new ArrayList<>(activeStreams.values());
191+
for (FrameHandler handler : activeStreamsCopy) {
189192
if (handler != null) {
190193
handler.handleCancel();
191194
}

0 commit comments

Comments
 (0)