From 4ea56073f454d09117149bba4fe19e4984141bc2 Mon Sep 17 00:00:00 2001 From: Jeff Yemin Date: Mon, 16 Oct 2023 09:43:10 -0400 Subject: [PATCH] Remove Stream#shouldSupportAdditionalTimeout method Now that Stream is not part of the API, this method can be removed. It only existed due to the possibility that an application creates its own Stream implementation. JAVA-5180 --- .../connection/AsynchronousChannelStream.java | 5 ---- .../connection/DefaultConnectionPool.java | 10 ++------ .../connection/DefaultServerMonitor.java | 2 +- .../connection/InternalConnection.java | 4 --- .../connection/InternalStreamConnection.java | 5 ---- .../internal/connection/SocketStream.java | 5 ---- .../mongodb/internal/connection/Stream.java | 25 +------------------ .../TlsChannelStreamFactoryFactory.java | 5 ---- .../UsageTrackingInternalConnection.java | 5 ---- .../connection/netty/NettyStream.java | 5 ---- .../DefaultServerMonitorSpecification.groovy | 4 --- 11 files changed, 4 insertions(+), 71 deletions(-) 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(_, _) >> {