File tree Expand file tree Collapse file tree
reactivesocket-aeron/src/main/java/io/reactivesocket/aeron/client
main/java/io/reactivesocket/netty
test/java/io/reactivesocket/netty Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1919import io .reactivesocket .DuplexConnection ;
2020import io .reactivesocket .Frame ;
2121import io .reactivesocket .aeron .internal .Loggable ;
22+ import io .reactivesocket .aeron .internal .NotConnectedException ;
23+ import io .reactivesocket .exceptions .TransportException ;
2224import io .reactivesocket .rx .Completable ;
2325import io .reactivesocket .rx .Disposable ;
2426import io .reactivesocket .rx .Observable ;
@@ -101,7 +103,11 @@ public void onNext(Frame frame) {
101103
102104 @ Override
103105 public void onError (Throwable t ) {
104- callback .error (t );
106+ if (t instanceof NotConnectedException ) {
107+ callback .error (new TransportException (t ));
108+ } else {
109+ callback .error (t );
110+ }
105111 }
106112
107113 @ Override
Original file line number Diff line number Diff line change 2828import io .netty .handler .codec .LengthFieldBasedFrameDecoder ;
2929import io .reactivesocket .DuplexConnection ;
3030import io .reactivesocket .Frame ;
31+ import io .reactivesocket .exceptions .TransportException ;
3132import io .reactivesocket .rx .Completable ;
3233import io .reactivesocket .rx .Observable ;
3334import io .reactivesocket .rx .Observer ;
3940import java .io .IOException ;
4041import java .net .InetSocketAddress ;
4142import java .net .SocketAddress ;
43+ import java .nio .channels .ClosedChannelException ;
4244import java .util .concurrent .CopyOnWriteArrayList ;
4345
4446public class ClientTcpDuplexConnection implements DuplexConnection {
@@ -121,7 +123,11 @@ public void onNext(Frame frame) {
121123 channelFuture .addListener (future -> {
122124 Throwable cause = future .cause ();
123125 if (cause != null ) {
124- callback .error (cause );
126+ if (cause instanceof ClosedChannelException ) {
127+ onError (new TransportException (cause ));
128+ } else {
129+ onError (cause );
130+ }
125131 }
126132 });
127133 } catch (Throwable t ) {
Original file line number Diff line number Diff line change 2727import io .netty .handler .codec .http .websocketx .*;
2828import io .reactivesocket .DuplexConnection ;
2929import io .reactivesocket .Frame ;
30+ import io .reactivesocket .exceptions .TransportException ;
3031import io .reactivesocket .rx .Completable ;
3132import io .reactivesocket .rx .Observable ;
3233import io .reactivesocket .rx .Observer ;
3940import java .net .SocketAddress ;
4041import java .net .URI ;
4142import java .net .URISyntaxException ;
43+ import java .nio .channels .ClosedChannelException ;
4244import java .util .concurrent .CopyOnWriteArrayList ;
4345
4446public class ClientWebSocketDuplexConnection implements DuplexConnection {
@@ -136,7 +138,11 @@ public void onNext(Frame frame) {
136138 channelFuture .addListener (future -> {
137139 Throwable cause = future .cause ();
138140 if (cause != null ) {
139- callback .error (cause );
141+ if (cause instanceof ClosedChannelException ) {
142+ onError (new TransportException (cause ));
143+ } else {
144+ onError (cause );
145+ }
140146 }
141147 });
142148 } catch (Throwable t ) {
Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ public class ClientServerTest {
5252 static EventLoopGroup bossGroup = new NioEventLoopGroup (1 );
5353 static EventLoopGroup workerGroup = new NioEventLoopGroup (4 );
5454
55- static ReactiveSocketServerHandler serverHandler = ReactiveSocketServerHandler .create (setupPayload ->
55+ static ReactiveSocketServerHandler serverHandler = ReactiveSocketServerHandler .create (( setupPayload , rs ) ->
5656 new RequestHandler () {
5757 @ Override
5858 public Publisher <Payload > handleRequestResponse (Payload payload ) {
Original file line number Diff line number Diff line change @@ -80,11 +80,13 @@ public ByteBuffer getMetadata() {
8080 .toObservable (
8181 reactiveSocket
8282 .requestResponse (keyPayload ))
83+ .doOnError (t -> t .printStackTrace ())
8384 .doOnNext (s -> {
8485 long diff = System .nanoTime () - start ;
8586 histogram .recordValue (diff );
8687 });
8788 }, 16 )
89+ .doOnError (t -> t .printStackTrace ())
8890 .subscribe (new Subscriber <Payload >() {
8991 @ Override
9092 public void onCompleted () {
Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ public static void main(String... args) throws Exception {
4343 r .nextBytes (response );
4444
4545 ReactiveSocketServerHandler serverHandler =
46- ReactiveSocketServerHandler .create (setupPayload -> new RequestHandler () {
46+ ReactiveSocketServerHandler .create (( setupPayload , rs ) -> new RequestHandler () {
4747 @ Override
4848 public Publisher <Payload > handleRequestResponse (Payload payload ) {
4949 return new Publisher <Payload >() {
Original file line number Diff line number Diff line change @@ -51,7 +51,7 @@ public class ClientServerTest {
5151 static EventLoopGroup bossGroup = new NioEventLoopGroup (1 );
5252 static EventLoopGroup workerGroup = new NioEventLoopGroup (4 );
5353
54- static ReactiveSocketServerHandler serverHandler = ReactiveSocketServerHandler .create (setupPayload ->
54+ static ReactiveSocketServerHandler serverHandler = ReactiveSocketServerHandler .create (( setupPayload , rs ) ->
5555 new RequestHandler () {
5656 @ Override
5757 public Publisher <Payload > handleRequestResponse (Payload payload ) {
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ public static void main(String... args) throws Exception {
4646 r .nextBytes (response );
4747
4848 ReactiveSocketServerHandler serverHandler =
49- ReactiveSocketServerHandler .create (setupPayload -> new RequestHandler () {
49+ ReactiveSocketServerHandler .create (( setupPayload , rs ) -> new RequestHandler () {
5050 @ Override
5151 public Publisher <Payload > handleRequestResponse (Payload payload ) {
5252 return new Publisher <Payload >() {
You can’t perform that action at this time.
0 commit comments