diff --git a/driver-core/src/main/com/mongodb/internal/connection/AsynchronousChannelStream.java b/driver-core/src/main/com/mongodb/internal/connection/AsynchronousChannelStream.java index dc652dab0d2..6f2b7e5c172 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/AsynchronousChannelStream.java +++ b/driver-core/src/main/com/mongodb/internal/connection/AsynchronousChannelStream.java @@ -143,11 +143,6 @@ public ByteBuf read(final int numBytes) throws IOException { return handler.getRead(); } - @Override - public boolean supportsAdditionalTimeout() { - return true; - } - @Override public ByteBuf read(final int numBytes, final int additionalTimeout) throws IOException { FutureAsyncCompletionHandler handler = new FutureAsyncCompletionHandler<>(); diff --git a/driver-core/src/main/com/mongodb/internal/connection/DefaultConnectionPool.java b/driver-core/src/main/com/mongodb/internal/connection/DefaultConnectionPool.java index 61ef1f09c27..f235410eb7e 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/DefaultConnectionPool.java +++ b/driver-core/src/main/com/mongodb/internal/connection/DefaultConnectionPool.java @@ -43,8 +43,6 @@ import com.mongodb.event.ConnectionPoolListener; import com.mongodb.event.ConnectionPoolReadyEvent; import com.mongodb.event.ConnectionReadyEvent; -import com.mongodb.internal.time.TimePoint; -import com.mongodb.internal.time.Timeout; import com.mongodb.internal.VisibleForTesting; import com.mongodb.internal.async.SingleResultCallback; import com.mongodb.internal.connection.SdamServerDescriptionManager.SdamIssue; @@ -56,6 +54,8 @@ import com.mongodb.internal.logging.StructuredLogger; import com.mongodb.internal.session.SessionContext; import com.mongodb.internal.thread.DaemonThreadFactory; +import com.mongodb.internal.time.TimePoint; +import com.mongodb.internal.time.Timeout; import com.mongodb.lang.NonNull; import com.mongodb.lang.Nullable; import org.bson.ByteBuf; @@ -777,12 +777,6 @@ public T receive(final Decoder decoder, final SessionContext sessionConte return wrapped.receive(decoder, sessionContext); } - @Override - public boolean supportsAdditionalTimeout() { - isTrue("open", !isClosed.get()); - return wrapped.supportsAdditionalTimeout(); - } - @Override public T receive(final Decoder decoder, final SessionContext sessionContext, final int additionalTimeout) { isTrue("open", !isClosed.get()); diff --git a/driver-core/src/main/com/mongodb/internal/connection/DefaultServerMonitor.java b/driver-core/src/main/com/mongodb/internal/connection/DefaultServerMonitor.java index 9ad1f49e613..52b01176b4c 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/DefaultServerMonitor.java +++ b/driver-core/src/main/com/mongodb/internal/connection/DefaultServerMonitor.java @@ -254,7 +254,7 @@ private ServerDescription lookupServerDescription(final ServerDescription curren } private boolean shouldStreamResponses(final ServerDescription currentServerDescription) { - return currentServerDescription.getTopologyVersion() != null && connection.supportsAdditionalTimeout(); + return currentServerDescription.getTopologyVersion() != null; } private CommandMessage createCommandMessage(final BsonDocument command, final InternalConnection connection, diff --git a/driver-core/src/main/com/mongodb/internal/connection/InternalConnection.java b/driver-core/src/main/com/mongodb/internal/connection/InternalConnection.java index c14a816b525..405ef31f5cf 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/InternalConnection.java +++ b/driver-core/src/main/com/mongodb/internal/connection/InternalConnection.java @@ -103,10 +103,6 @@ T sendAndReceive(CommandMessage message, Decoder decoder, SessionContext T receive(Decoder decoder, SessionContext sessionContext); - default boolean supportsAdditionalTimeout() { - return false; - } - default T receive(Decoder decoder, SessionContext sessionContext, int additionalTimeout) { throw new UnsupportedOperationException(); } diff --git a/driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnection.java b/driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnection.java index d3cd2eab867..a6d7131cdf1 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnection.java +++ b/driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnection.java @@ -375,11 +375,6 @@ public T receive(final Decoder decoder, final SessionContext sessionConte return receiveCommandMessageResponse(decoder, new NoOpCommandEventSender(), sessionContext, 0); } - @Override - public boolean supportsAdditionalTimeout() { - return stream.supportsAdditionalTimeout(); - } - @Override public T receive(final Decoder decoder, final SessionContext sessionContext, final int additionalTimeout) { isTrue("Response is expected", hasMoreToCome); diff --git a/driver-core/src/main/com/mongodb/internal/connection/SocketStream.java b/driver-core/src/main/com/mongodb/internal/connection/SocketStream.java index a7f71314757..7ee08fd967c 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/SocketStream.java +++ b/driver-core/src/main/com/mongodb/internal/connection/SocketStream.java @@ -186,11 +186,6 @@ public ByteBuf read(final int numBytes) throws IOException { } } - @Override - public boolean supportsAdditionalTimeout() { - return true; - } - @Override public ByteBuf read(final int numBytes, final int additionalTimeout) throws IOException { int curTimeout = socket.getSoTimeout(); diff --git a/driver-core/src/main/com/mongodb/internal/connection/Stream.java b/driver-core/src/main/com/mongodb/internal/connection/Stream.java index bcce2bfabba..b26074d218f 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/Stream.java +++ b/driver-core/src/main/com/mongodb/internal/connection/Stream.java @@ -60,39 +60,16 @@ public interface Stream extends BufferProvider { */ ByteBuf read(int numBytes) throws IOException; - /** - * Gets whether this implementation supports specifying an additional timeout for read operations - *

- * The default is to not support specifying an additional timeout - *

- * - * @return true if this implementation supports specifying an additional timeouts for reads operations - * @see #read(int, int) - */ - default boolean supportsAdditionalTimeout() { - return false; - } - /** * Read from the stream, blocking until the requested number of bytes have been read. If supported by the implementation, * adds the given additional timeout to the configured timeout for the stream. - *

- * This method should not be called unless {@link #supportsAdditionalTimeout()} returns true. - *

- *

- * The default behavior is to throw an {@link UnsupportedOperationException} - *

* * @param numBytes The number of bytes to read into the returned byte buffer * @param additionalTimeout additional timeout in milliseconds to add to the configured timeout * @return a byte buffer filled with number of bytes requested * @throws IOException if there are problems reading from the stream - * @throws UnsupportedOperationException if this implementation does not support additional timeouts - * @see #supportsAdditionalTimeout() */ - default ByteBuf read(int numBytes, int additionalTimeout) throws IOException { - throw new UnsupportedOperationException(); - } + ByteBuf read(int numBytes, int additionalTimeout) throws IOException; /** * Write each buffer in the list to the stream in order, asynchronously. This method should return immediately, and invoke the given diff --git a/driver-core/src/main/com/mongodb/internal/connection/TlsChannelStreamFactoryFactory.java b/driver-core/src/main/com/mongodb/internal/connection/TlsChannelStreamFactoryFactory.java index 4f6bacef191..bce3c353137 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/TlsChannelStreamFactoryFactory.java +++ b/driver-core/src/main/com/mongodb/internal/connection/TlsChannelStreamFactoryFactory.java @@ -179,11 +179,6 @@ private static class TlsChannelStream extends AsynchronousChannelStream { this.selectorMonitor = selectorMonitor; } - @Override - public boolean supportsAdditionalTimeout() { - return true; - } - @Override public void openAsync(final AsyncCompletionHandler handler) { isTrue("unopened", getChannel() == null); diff --git a/driver-core/src/main/com/mongodb/internal/connection/UsageTrackingInternalConnection.java b/driver-core/src/main/com/mongodb/internal/connection/UsageTrackingInternalConnection.java index 794ec2772d5..f0ae4a9244e 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/UsageTrackingInternalConnection.java +++ b/driver-core/src/main/com/mongodb/internal/connection/UsageTrackingInternalConnection.java @@ -129,11 +129,6 @@ public T receive(final Decoder decoder, final SessionContext sessionConte return result; } - @Override - public boolean supportsAdditionalTimeout() { - return wrapped.supportsAdditionalTimeout(); - } - @Override public T receive(final Decoder decoder, final SessionContext sessionContext, final int additionalTimeout) { T result = wrapped.receive(decoder, sessionContext, additionalTimeout); diff --git a/driver-core/src/main/com/mongodb/internal/connection/netty/NettyStream.java b/driver-core/src/main/com/mongodb/internal/connection/netty/NettyStream.java index 8d9f9b65372..1f3c6ec9a1b 100644 --- a/driver-core/src/main/com/mongodb/internal/connection/netty/NettyStream.java +++ b/driver-core/src/main/com/mongodb/internal/connection/netty/NettyStream.java @@ -240,11 +240,6 @@ public ByteBuf read(final int numBytes) throws IOException { return read(numBytes, 0); } - @Override - public boolean supportsAdditionalTimeout() { - return true; - } - @Override public ByteBuf read(final int numBytes, final int additionalTimeoutMillis) throws IOException { isTrueArgument("additionalTimeoutMillis must not be negative", additionalTimeoutMillis >= 0); diff --git a/driver-core/src/test/unit/com/mongodb/internal/connection/DefaultServerMonitorSpecification.groovy b/driver-core/src/test/unit/com/mongodb/internal/connection/DefaultServerMonitorSpecification.groovy index d1790a8acb7..df0b6518dcc 100644 --- a/driver-core/src/test/unit/com/mongodb/internal/connection/DefaultServerMonitorSpecification.groovy +++ b/driver-core/src/test/unit/com/mongodb/internal/connection/DefaultServerMonitorSpecification.groovy @@ -157,8 +157,6 @@ class DefaultServerMonitorSpecification extends Specification { initialServerDescription } - supportsAdditionalTimeout() >> true - send(_, _, _) >> { } receive(_, _) >> { @@ -238,8 +236,6 @@ class DefaultServerMonitorSpecification extends Specification { initialServerDescription } - supportsAdditionalTimeout() >> true - send(_, _, _) >> { } receive(_, _) >> {