@@ -582,17 +582,19 @@ private <T> void sendAndReceiveAsyncInternal(final CommandMessage message, final
582
582
private <T > void sendCommandMessageAsync (final int messageId , final Decoder <T > decoder , final OperationContext operationContext ,
583
583
final SingleResultCallback <T > callback , final ByteBufferBsonOutput bsonOutput ,
584
584
final CommandEventSender commandEventSender , final boolean responseExpected ) {
585
- List <ByteBuf > byteBuffers = bsonOutput .getByteBuffers ();
586
-
587
585
boolean [] shouldReturn = {false };
588
586
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 );
590
591
shouldReturn [0 ] = true ;
591
592
});
592
593
if (shouldReturn [0 ]) {
593
594
return ;
594
595
}
595
596
597
+ List <ByteBuf > byteBuffers = bsonOutput .getByteBuffers ();
596
598
sendMessageAsync (byteBuffers , messageId , operationContext , (result , t ) -> {
597
599
ResourceUtil .release (byteBuffers );
598
600
bsonOutput .close ();
@@ -638,13 +640,6 @@ private <T> void sendCommandMessageAsync(final int messageId, final Decoder<T> d
638
640
});
639
641
}
640
642
641
- private MongoOperationTimeoutException createMongoOperationTimeoutExceptionAndClose (final CommandEventSender commandEventSender ) {
642
- MongoOperationTimeoutException e = TimeoutContext .createMongoRoundTripTimeoutException ();
643
- close ();
644
- commandEventSender .sendFailedEvent (e );
645
- return e ;
646
- }
647
-
648
643
private <T > T getCommandResult (final Decoder <T > decoder ,
649
644
final ResponseBuffers responseBuffers ,
650
645
final int messageId ,
0 commit comments