Skip to content

Commit b41c63f

Browse files
committed
fixes tests
Signed-off-by: Oleh Dokuka <[email protected]>
1 parent e837f2f commit b41c63f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import reactor.core.publisher.BaseSubscriber;
6565
import reactor.core.publisher.Flux;
6666
import reactor.core.publisher.Mono;
67+
import reactor.core.publisher.MonoProcessor;
6768
import reactor.core.publisher.Operators;
6869
import reactor.core.publisher.SignalType;
6970
import reactor.core.publisher.UnicastProcessor;
@@ -109,6 +110,7 @@ class RSocketRequester implements RSocket {
109110
private final RequesterLeaseHandler leaseHandler;
110111
private final ByteBufAllocator allocator;
111112
private final KeepAliveFramesAcceptor keepAliveFramesAcceptor;
113+
private final MonoProcessor<Void> onClose;
112114
private final Scheduler serialScheduler;
113115

114116
RSocketRequester(
@@ -129,6 +131,7 @@ class RSocketRequester implements RSocket {
129131
this.leaseHandler = leaseHandler;
130132
this.senders = new SynchronizedIntObjectHashMap<>();
131133
this.receivers = new SynchronizedIntObjectHashMap<>();
134+
this.onClose = MonoProcessor.create();
132135
this.serialScheduler = serialScheduler;
133136

134137
// DO NOT Change the order here. The Send processor must be subscribed to before receiving
@@ -182,17 +185,17 @@ public double availability() {
182185

183186
@Override
184187
public void dispose() {
185-
tryTerminate(() -> new CancellationException("Disposed"));
188+
tryShutdown();
186189
}
187190

188191
@Override
189192
public boolean isDisposed() {
190-
return connection.isDisposed();
193+
return onClose.isDisposed();
191194
}
192195

193196
@Override
194197
public Mono<Void> onClose() {
195-
return connection.onClose();
198+
return onClose;
196199
}
197200

198201
private Mono<Void> handleFireAndForget(Payload payload) {
@@ -759,6 +762,11 @@ private void terminate(Throwable e) {
759762
senders.clear();
760763
receivers.clear();
761764
sendProcessor.dispose();
765+
if (e == CLOSED_CHANNEL_EXCEPTION) {
766+
onClose.onComplete();
767+
} else {
768+
onClose.onError(e);
769+
}
762770
}
763771

764772
private void handleSendProcessorError(Throwable t) {

0 commit comments

Comments
 (0)