2323import com .mongodb .ReadConcernLevel ;
2424import com .mongodb .ServerApi ;
2525import com .mongodb .ServerApiVersion ;
26- import com .mongodb .internal .connection .TestClusterListener ;
27- import com .mongodb .logging .TestLoggingInterceptor ;
2826import com .mongodb .TransactionOptions ;
2927import com .mongodb .WriteConcern ;
3028import com .mongodb .assertions .Assertions ;
5654import com .mongodb .event .ConnectionPoolListener ;
5755import com .mongodb .event .ConnectionPoolReadyEvent ;
5856import com .mongodb .event .ConnectionReadyEvent ;
57+ import com .mongodb .internal .connection .TestClusterListener ;
5958import com .mongodb .internal .connection .TestCommandListener ;
6059import com .mongodb .internal .connection .TestConnectionPoolListener ;
6160import com .mongodb .internal .connection .TestServerListener ;
6261import com .mongodb .internal .logging .LogMessage ;
6362import com .mongodb .lang .NonNull ;
63+ import com .mongodb .logging .TestLoggingInterceptor ;
6464import org .bson .BsonArray ;
6565import org .bson .BsonBoolean ;
6666import org .bson .BsonDocument ;
@@ -300,6 +300,7 @@ private <T> void putEntity(final String id, final T entity, final Map<String, T>
300300 }
301301
302302 public void init (final BsonArray entitiesArray ,
303+ final BsonDocument startingClusterTime ,
303304 final boolean waitForPoolAsyncWorkManagerStart ,
304305 final Function <MongoClientSettings , MongoClient > mongoClientSupplier ,
305306 final Function <MongoDatabase , GridFSBucket > gridFSBucketSupplier ,
@@ -324,7 +325,7 @@ public void init(final BsonArray entitiesArray,
324325 break ;
325326 }
326327 case "session" : {
327- initSession (entity , id );
328+ initSession (entity , id , startingClusterTime );
328329 break ;
329330 }
330331 case "bucket" : {
@@ -596,7 +597,7 @@ private void initCollection(final BsonDocument entity, final String id) {
596597 putEntity (id , collection , collections );
597598 }
598599
599- private void initSession (final BsonDocument entity , final String id ) {
600+ private void initSession (final BsonDocument entity , final String id , final BsonDocument startingClusterTime ) {
600601 MongoClient client = clients .get (entity .getString ("client" ).getValue ());
601602 ClientSessionOptions .Builder optionsBuilder = ClientSessionOptions .builder ();
602603 if (entity .containsKey ("sessionOptions" )) {
@@ -614,6 +615,7 @@ private void initSession(final BsonDocument entity, final String id) {
614615 }
615616 }
616617 ClientSession session = client .startSession (optionsBuilder .build ());
618+ session .advanceClusterTime (startingClusterTime );
617619 putEntity (id , session , sessions );
618620 putEntity (id + "-identifier" , session .getServerSession ().getIdentifier (), sessionIdentifiers );
619621 }
0 commit comments