Skip to content

Commit c7c4a0e

Browse files
committed
Refactoring: remove unused parameters from OperationHelper.canRetryWrite/canRetryRead
JAVA-5956, JAVA-6117, JAVA-6113, JAVA-6119, JAVA-6141
1 parent 26c0f2f commit c7c4a0e

7 files changed

Lines changed: 15 additions & 29 deletions

File tree

driver-core/src/main/com/mongodb/internal/operation/AsyncOperationHelper.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,7 @@ static <D, T> void executeRetryableReadAsync(
199199
withAsyncSourceAndConnection(sourceAsyncFunction, false, operationContext, funcCallback,
200200
(source, connection, operationContextWithMinRtt, releasingCallback) -> {
201201
if (retryState.breakAndCompleteIfRetryAnd(
202-
() -> !OperationHelper.canRetryRead(source.getServerDescription(),
203-
operationContextWithMinRtt),
204-
releasingCallback)) {
202+
() -> !OperationHelper.canRetryRead(operationContextWithMinRtt), releasingCallback)) {
205203
return;
206204
}
207205
createReadCommandAndExecuteAsync(retryState, operationContextWithMinRtt, source, database,
@@ -278,8 +276,7 @@ static <T, R> void executeRetryableWriteAsync(
278276
? releasingCallback
279277
: addingRetryableLabelCallback(releasingCallback, maxWireVersion);
280278
if (retryState.breakAndCompleteIfRetryAnd(() ->
281-
!OperationHelper.canRetryWrite(connection.getDescription(), operationContextWithMinRtt.getSessionContext()),
282-
addingRetryableLabelCallback)) {
279+
!OperationHelper.canRetryWrite(connection.getDescription()), addingRetryableLabelCallback)) {
283280
return;
284281
}
285282
BsonDocument command;

driver-core/src/main/com/mongodb/internal/operation/FindOperation.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public BatchCursor<T> execute(final ReadBinding binding, final OperationContext
303303
Supplier<BatchCursor<T>> read = decorateReadWithRetries(retryState, findOperationContext, () ->
304304
withSourceAndConnection(binding::getReadConnectionSource, false,
305305
(source, connection, commandOperationContext) -> {
306-
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(source.getServerDescription(), commandOperationContext));
306+
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(commandOperationContext));
307307
try {
308308
return createReadCommandAndExecute(retryState, commandOperationContext, source, namespace.getDatabaseName(),
309309
getCommandCreator(), CommandResultDocumentCodec.create(decoder, FIRST_BATCH),
@@ -331,8 +331,7 @@ public void executeAsync(final AsyncReadBinding binding, final OperationContext
331331
retryState, operationContext, (AsyncCallbackSupplier<AsyncBatchCursor<T>>) funcCallback ->
332332
withAsyncSourceAndConnection(binding::getReadConnectionSource, false, findOperationContext, funcCallback,
333333
(source, connection, operationContextWithMinRTT, releasingCallback) -> {
334-
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(source.getServerDescription(),
335-
findOperationContext), releasingCallback)) {
334+
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(findOperationContext), releasingCallback)) {
336335
return;
337336
}
338337
SingleResultCallback<AsyncBatchCursor<T>> wrappedCallback = exceptionTransformingCallback(releasingCallback);

driver-core/src/main/com/mongodb/internal/operation/ListCollectionsOperation.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public BatchCursor<T> execute(final ReadBinding binding, final OperationContext
178178
RetryState retryState = initialRetryState(retryReads, listCollectionsOperationContext.getTimeoutContext());
179179
Supplier<BatchCursor<T>> read = decorateReadWithRetries(retryState, listCollectionsOperationContext, () ->
180180
withSourceAndConnection(binding::getReadConnectionSource, false, (source, connection, operationContextWithMinRTT) -> {
181-
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(source.getServerDescription(), operationContextWithMinRTT));
181+
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(operationContextWithMinRTT));
182182
try {
183183
return createReadCommandAndExecute(retryState, operationContextWithMinRTT, source, databaseName,
184184
getCommandCreator(), createCommandDecoder(), transformer(), connection);
@@ -202,8 +202,7 @@ public void executeAsync(final AsyncReadBinding binding, final OperationContext
202202
retryState, listCollectionsOperationContext, (AsyncCallbackSupplier<AsyncBatchCursor<T>>) funcCallback ->
203203
withAsyncSourceAndConnection(binding::getReadConnectionSource, false, listCollectionsOperationContext, funcCallback,
204204
(source, connection, operationContextWithMinRtt, releasingCallback) -> {
205-
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(source.getServerDescription(),
206-
operationContextWithMinRtt), releasingCallback)) {
205+
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(operationContextWithMinRtt), releasingCallback)) {
207206
return;
208207
}
209208
createReadCommandAndExecuteAsync(retryState, operationContextWithMinRtt, source, databaseName,

driver-core/src/main/com/mongodb/internal/operation/ListIndexesOperation.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public BatchCursor<T> execute(final ReadBinding binding, final OperationContext
135135
RetryState retryState = initialRetryState(retryReads, listIndexesOperationContext.getTimeoutContext());
136136
Supplier<BatchCursor<T>> read = decorateReadWithRetries(retryState, listIndexesOperationContext, () ->
137137
withSourceAndConnection(binding::getReadConnectionSource, false, (source, connection, operationContextWithMinRTT) -> {
138-
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(source.getServerDescription(), operationContextWithMinRTT));
138+
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(operationContextWithMinRTT));
139139
try {
140140
return createReadCommandAndExecute(retryState, operationContextWithMinRTT, source, namespace.getDatabaseName(),
141141
getCommandCreator(), createCommandDecoder(), transformer(), connection);
@@ -158,8 +158,7 @@ public void executeAsync(final AsyncReadBinding binding, final OperationContext
158158
retryState, listIndexesOperationContext, (AsyncCallbackSupplier<AsyncBatchCursor<T>>) funcCallback ->
159159
withAsyncSourceAndConnection(binding::getReadConnectionSource, false, listIndexesOperationContext, funcCallback,
160160
(source, connection, operationContextWithMinRtt, releasingCallback) -> {
161-
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(source.getServerDescription(),
162-
operationContextWithMinRtt), releasingCallback)) {
161+
if (retryState.breakAndCompleteIfRetryAnd(() -> !canRetryRead(operationContextWithMinRtt), releasingCallback)) {
163162
return;
164163
}
165164
createReadCommandAndExecuteAsync(retryState, operationContextWithMinRtt, source,

driver-core/src/main/com/mongodb/internal/operation/OperationHelper.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.mongodb.client.cursor.TimeoutMode;
2424
import com.mongodb.client.model.Collation;
2525
import com.mongodb.connection.ConnectionDescription;
26-
import com.mongodb.connection.ServerDescription;
2726
import com.mongodb.connection.ServerType;
2827
import com.mongodb.internal.TimeoutContext;
2928
import com.mongodb.internal.async.SingleResultCallback;
@@ -168,11 +167,11 @@ static boolean isRetryableWrite(final boolean retryWrites, final WriteConcern wr
168167
LOGGER.debug("retryWrites set to true but in an active transaction.");
169168
return false;
170169
} else {
171-
return canRetryWrite(connectionDescription, sessionContext);
170+
return canRetryWrite(connectionDescription);
172171
}
173172
}
174173

175-
static boolean canRetryWrite(final ConnectionDescription connectionDescription, final SessionContext sessionContext) {
174+
static boolean canRetryWrite(final ConnectionDescription connectionDescription) {
176175
if (connectionDescription.getLogicalSessionTimeoutMinutes() == null) {
177176
LOGGER.debug("retryWrites set to true but the server does not support sessions.");
178177
return false;
@@ -183,7 +182,7 @@ static boolean canRetryWrite(final ConnectionDescription connectionDescription,
183182
return true;
184183
}
185184

186-
static boolean canRetryRead(final ServerDescription serverDescription, final OperationContext operationContext) {
185+
static boolean canRetryRead(final OperationContext operationContext) {
187186
if (operationContext.getSessionContext().hasActiveTransaction()) {
188187
LOGGER.debug("retryReads set to true but in an active transaction.");
189188
return false;

driver-core/src/main/com/mongodb/internal/operation/SyncOperationHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ static <D, T> T executeRetryableRead(
206206

207207
Supplier<T> read = decorateReadWithRetries(retryState, operationContext, () ->
208208
withSourceAndConnection(readConnectionSourceSupplier, false, (source, connection, operationContextWithMinRtt) -> {
209-
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(source.getServerDescription(), operationContextWithMinRtt));
209+
retryState.breakAndThrowIfRetryAnd(() -> !canRetryRead(operationContextWithMinRtt));
210210
return createReadCommandAndExecute(retryState, operationContextWithMinRtt, source, database,
211211
commandCreator, decoder, transformer, connection);
212212
}, operationContext)
@@ -270,7 +270,7 @@ static <T, R> R executeRetryableWrite(
270270
return withSourceAndConnection(binding::getWriteConnectionSource, true, (source, connection, operationContextWithMinRtt) -> {
271271
int maxWireVersion = connection.getDescription().getMaxWireVersion();
272272
try {
273-
retryState.breakAndThrowIfRetryAnd(() -> !canRetryWrite(connection.getDescription(), sessionContext));
273+
retryState.breakAndThrowIfRetryAnd(() -> !canRetryWrite(connection.getDescription()));
274274
BsonDocument command = retryState.attachment(AttachmentKeys.command())
275275
.map(previousAttemptCommand -> {
276276
assertFalse(firstAttempt);

driver-core/src/test/unit/com/mongodb/internal/operation/OperationHelperSpecification.groovy

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import com.mongodb.client.model.Collation
2121
import com.mongodb.connection.ClusterId
2222
import com.mongodb.connection.ConnectionDescription
2323
import com.mongodb.connection.ConnectionId
24-
import com.mongodb.connection.ServerDescription
2524
import com.mongodb.connection.ServerId
2625
import com.mongodb.internal.bulk.DeleteRequest
2726
import com.mongodb.internal.bulk.UpdateRequest
@@ -35,7 +34,6 @@ import spock.lang.Specification
3534
import static com.mongodb.ClusterFixture.OPERATION_CONTEXT
3635
import static com.mongodb.WriteConcern.ACKNOWLEDGED
3736
import static com.mongodb.WriteConcern.UNACKNOWLEDGED
38-
import static com.mongodb.connection.ServerConnectionState.CONNECTED
3937
import static com.mongodb.connection.ServerType.REPLICA_SET_PRIMARY
4038
import static com.mongodb.connection.ServerType.STANDALONE
4139
import static com.mongodb.internal.operation.OperationHelper.canRetryRead
@@ -108,8 +106,8 @@ class OperationHelperSpecification extends Specification {
108106
}
109107

110108
expect:
111-
canRetryRead(retryableServerDescription, OPERATION_CONTEXT.withSessionContext(noTransactionSessionContext))
112-
!canRetryRead(retryableServerDescription, OPERATION_CONTEXT.withSessionContext(activeTransactionSessionContext))
109+
canRetryRead(OPERATION_CONTEXT.withSessionContext(noTransactionSessionContext))
110+
!canRetryRead(OPERATION_CONTEXT.withSessionContext(activeTransactionSessionContext))
113111
}
114112

115113

@@ -121,10 +119,5 @@ class OperationHelperSpecification extends Specification {
121119
static ConnectionDescription threeFourConnectionDescription = new ConnectionDescription(connectionId, 5,
122120
STANDALONE, 1000, 100000, 100000, [], new BsonArray(), null)
123121

124-
static ServerDescription retryableServerDescription = ServerDescription.builder().address(new ServerAddress()).state(CONNECTED)
125-
.logicalSessionTimeoutMinutes(1).build()
126-
static ServerDescription nonRetryableServerDescription = ServerDescription.builder().address(new ServerAddress())
127-
.state(CONNECTED).build()
128-
129122
static Collation enCollation = Collation.builder().locale('en').build()
130123
}

0 commit comments

Comments
 (0)