Skip to content

Commit 141900b

Browse files
committed
Ignore read preference for standalone servers
JAVA-3306
1 parent 3300ccb commit 141900b

File tree

4 files changed

+10
-22
lines changed

4 files changed

+10
-22
lines changed

driver-async/src/test/functional/com/mongodb/async/client/ReadConcernTest.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818

1919
import com.mongodb.ClusterFixture;
2020
import com.mongodb.ReadConcern;
21-
import com.mongodb.ReadPreference;
2221
import com.mongodb.async.SingleResultCallback;
23-
import com.mongodb.internal.connection.TestCommandListener;
2422
import com.mongodb.event.CommandEvent;
2523
import com.mongodb.event.CommandStartedEvent;
24+
import com.mongodb.internal.connection.TestCommandListener;
2625
import org.bson.BsonDocument;
2726
import org.bson.BsonString;
2827
import org.junit.After;
@@ -34,7 +33,6 @@
3433
import java.util.concurrent.CountDownLatch;
3534
import java.util.concurrent.TimeUnit;
3635

37-
import static com.mongodb.ClusterFixture.isStandalone;
3836
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
3937
import static com.mongodb.async.client.Fixture.getDefaultDatabaseName;
4038
import static com.mongodb.client.CommandMonitoringTestHelper.assertEventsEquality;
@@ -82,9 +80,6 @@ public void onResult(final Long result, final Throwable t) {
8280
if (serverVersionAtLeast(3, 6)) {
8381
commandDocument.put("$db", new BsonString(getDefaultDatabaseName()));
8482
}
85-
if (isStandalone() && serverVersionAtLeast(3, 6)) {
86-
commandDocument.put("$readPreference", ReadPreference.primaryPreferred().toDocument());
87-
}
8883
assertEventsEquality(Arrays.<CommandEvent>asList(new CommandStartedEvent(1, null, getDefaultDatabaseName(),
8984
"count", commandDocument)), events);
9085

driver-core/src/main/com/mongodb/internal/connection/CommandMessage.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import static com.mongodb.connection.ClusterConnectionMode.MULTIPLE;
4949
import static com.mongodb.connection.ClusterConnectionMode.SINGLE;
5050
import static com.mongodb.connection.ServerType.SHARD_ROUTER;
51+
import static com.mongodb.connection.ServerType.STANDALONE;
5152
import static com.mongodb.internal.connection.BsonWriterHelper.writePayload;
5253
import static com.mongodb.internal.connection.ReadConcernHelper.getReadConcernDocument;
5354
import static com.mongodb.internal.operation.ServerVersionHelper.FOUR_DOT_TWO_WIRE_VERSION;
@@ -215,11 +216,13 @@ private int getOpQuerySlaveOkFlagBit() {
215216
}
216217

217218
private boolean isSlaveOk() {
218-
return (readPreference != null && readPreference.isSlaveOk()) || isDirectConnectionToNonShardRouter();
219+
return (readPreference != null && readPreference.isSlaveOk()) || isDirectConnectionToReplicaSetMember();
219220
}
220221

221-
private boolean isDirectConnectionToNonShardRouter() {
222-
return clusterConnectionMode == SINGLE && getSettings().getServerType() != SHARD_ROUTER;
222+
private boolean isDirectConnectionToReplicaSetMember() {
223+
return clusterConnectionMode == SINGLE
224+
&& getSettings().getServerType() != SHARD_ROUTER
225+
&& getSettings().getServerType() != STANDALONE;
223226
}
224227

225228
private boolean useOpMsg() {
@@ -256,7 +259,7 @@ private List<BsonElement> getExtraElements(final SessionContext sessionContext)
256259
if (readPreference != null) {
257260
if (!readPreference.equals(primary())) {
258261
extraElements.add(new BsonElement("$readPreference", readPreference.toDocument()));
259-
} else if (isDirectConnectionToNonShardRouter()) {
262+
} else if (isDirectConnectionToReplicaSetMember()) {
260263
extraElements.add(new BsonElement("$readPreference", primaryPreferred().toDocument()));
261264
}
262265
}

driver-core/src/test/functional/com/mongodb/client/CommandMonitoringTestHelper.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.mongodb.client;
1818

1919
import com.mongodb.ClusterFixture;
20-
import com.mongodb.ReadPreference;
2120
import com.mongodb.event.CommandEvent;
2221
import com.mongodb.event.CommandFailedEvent;
2322
import com.mongodb.event.CommandStartedEvent;
@@ -45,8 +44,6 @@
4544
import java.util.Map;
4645
import java.util.concurrent.TimeUnit;
4746

48-
import static com.mongodb.ClusterFixture.isDiscoverableReplicaSet;
49-
import static com.mongodb.ClusterFixture.isSharded;
5047
import static java.util.Arrays.asList;
5148
import static org.junit.Assert.assertEquals;
5249
import static org.junit.Assert.assertFalse;
@@ -89,9 +86,7 @@ public static List<CommandEvent> getExpectedEvents(final BsonArray expectedEvent
8986
commandDocument.put("$db", new BsonString(actualDatabaseName));
9087
if (operation != null && operation.containsKey("read_preference")) {
9188
commandDocument.put("$readPreference", operation.getDocument("read_preference"));
92-
} else if (!isDiscoverableReplicaSet() && !isSharded() && !isWriteCommand(commandName)) {
93-
commandDocument.put("$readPreference", ReadPreference.primaryPreferred().toDocument());
94-
}
89+
}
9590
}
9691
commandEvent = new CommandStartedEvent(1, null, actualDatabaseName, commandName,
9792
commandDocument);

driver-sync/src/test/functional/com/mongodb/client/ReadConcernTest.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818

1919
import com.mongodb.Block;
2020
import com.mongodb.ReadConcern;
21-
import com.mongodb.ReadPreference;
2221
import com.mongodb.connection.SocketSettings;
23-
import com.mongodb.internal.connection.TestCommandListener;
2422
import com.mongodb.event.CommandEvent;
2523
import com.mongodb.event.CommandStartedEvent;
24+
import com.mongodb.internal.connection.TestCommandListener;
2625
import org.bson.BsonDocument;
2726
import org.bson.BsonString;
2827
import org.junit.After;
@@ -33,7 +32,6 @@
3332
import java.util.List;
3433
import java.util.concurrent.TimeUnit;
3534

36-
import static com.mongodb.ClusterFixture.isStandalone;
3735
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
3836
import static com.mongodb.client.CommandMonitoringTestHelper.assertEventsEquality;
3937
import static com.mongodb.client.Fixture.getDefaultDatabaseName;
@@ -81,9 +79,6 @@ public void shouldIncludeReadConcernInCommand() {
8179
if (serverVersionAtLeast(3, 6)) {
8280
commandDocument.put("$db", new BsonString(getDefaultDatabaseName()));
8381
}
84-
if (isStandalone() && serverVersionAtLeast(3, 6)) {
85-
commandDocument.put("$readPreference", ReadPreference.primaryPreferred().toDocument());
86-
}
8782
assertEventsEquality(Arrays.<CommandEvent>asList(new CommandStartedEvent(1, null, getDefaultDatabaseName(),
8883
"count", commandDocument)), events);
8984
}

0 commit comments

Comments
 (0)