@@ -582,17 +582,19 @@ private <T> void sendAndReceiveAsyncInternal(final CommandMessage message, final
582582 private <T > void sendCommandMessageAsync (final int messageId , final Decoder <T > decoder , final OperationContext operationContext ,
583583 final SingleResultCallback <T > callback , final ByteBufferBsonOutput bsonOutput ,
584584 final CommandEventSender commandEventSender , final boolean responseExpected ) {
585- List <ByteBuf > byteBuffers = bsonOutput .getByteBuffers ();
586-
587585 boolean [] shouldReturn = {false };
588586 Timeout .onExistsAndExpired (operationContext .getTimeoutContext ().timeoutIncludingRoundTrip (), () -> {
589- callback .onResult (null , createMongoOperationTimeoutExceptionAndClose (commandEventSender ));
587+ bsonOutput .close ();
588+ MongoOperationTimeoutException operationTimeoutException = TimeoutContext .createMongoRoundTripTimeoutException ();
589+ commandEventSender .sendFailedEvent (operationTimeoutException );
590+ callback .onResult (null , operationTimeoutException );
590591 shouldReturn [0 ] = true ;
591592 });
592593 if (shouldReturn [0 ]) {
593594 return ;
594595 }
595596
597+ List <ByteBuf > byteBuffers = bsonOutput .getByteBuffers ();
596598 sendMessageAsync (byteBuffers , messageId , operationContext , (result , t ) -> {
597599 ResourceUtil .release (byteBuffers );
598600 bsonOutput .close ();
@@ -638,13 +640,6 @@ private <T> void sendCommandMessageAsync(final int messageId, final Decoder<T> d
638640 });
639641 }
640642
641- private MongoOperationTimeoutException createMongoOperationTimeoutExceptionAndClose (final CommandEventSender commandEventSender ) {
642- MongoOperationTimeoutException e = TimeoutContext .createMongoRoundTripTimeoutException ();
643- close ();
644- commandEventSender .sendFailedEvent (e );
645- return e ;
646- }
647-
648643 private <T > T getCommandResult (final Decoder <T > decoder ,
649644 final ResponseBuffers responseBuffers ,
650645 final int messageId ,
0 commit comments