1111
1212package io .vertx .tests .http ;
1313
14+ import io .netty .buffer .ByteBufUtil ;
1415import io .netty .channel .ConnectTimeoutException ;
1516import io .netty .channel .EventLoop ;
1617import io .netty .handler .codec .compression .DecompressionException ;
@@ -4979,17 +4980,21 @@ protected void testHttpConnect(RequestOptions options, int sc) {
49794980 Buffer buffer = TestUtils .randomBuffer (128 );
49804981 Buffer received = Buffer .buffer ();
49814982 CompletableFuture <Void > closeSocket = new CompletableFuture <>();
4982- vertx .createNetServer (new NetServerOptions ().setPort (1235 ).setHost ("localhost" )).connectHandler (socket -> {
4983- socket .handler (socket ::write );
4984- closeSocket .thenAccept (v -> {
4985- socket .close ();
4986- });
4987- }).listen ().onComplete (onSuccess (netServer -> {
4988- server .requestHandler (req -> {
4989- vertx .createNetClient (new NetClientOptions ()).connect (1235 , "localhost" ).onComplete (onSuccess (dst -> {
4983+ NetServer netServer = vertx .createNetServer (new NetServerOptions ().setPort (0 ).setHost ("localhost" ))
4984+ .connectHandler (socket -> {
4985+ socket .handler (socket ::write );
4986+ closeSocket .thenAccept (v -> {
4987+ socket .close ();
4988+ });
4989+ }).listen ().await ();
4990+ // Declare netClient in the main thread to avoid having it randomly garbage collected just after it created the connection
4991+ NetClient netClient = vertx .createNetClient (new NetClientOptions ());
49904992
4991- req .response ().setStatusCode (sc );
4992- req .response ().setStatusMessage ("Connection established" );
4993+ server .requestHandler (req -> {
4994+ netClient .connect (netServer .actualPort (), "localhost" ).onComplete (onSuccess (dst -> {
4995+
4996+ req .response ().setStatusCode (sc );
4997+ req .response ().setStatusMessage ("Connection established" );
49934998
49944999 // Now create a NetSocket
49955000 req .toNetSocket ().onComplete (onSuccess (src -> {
@@ -5015,12 +5020,11 @@ protected void testHttpConnect(RequestOptions options, int sc) {
50155020 }
50165021 });
50175022 socket .closeHandler (v -> {
5018- assertEquals (buffer , received );
5019- testComplete ();
5020- });
5021- socket .write (buffer );
5022- }));
5023- }));
5023+ assertEquals (ByteBufUtil .hexDump (buffer .getBytes ()), ByteBufUtil .hexDump (received .getBytes ()));
5024+ testComplete ();
5025+ });
5026+ socket .write (buffer );
5027+ }));
50245028 }));
50255029 }));
50265030
0 commit comments