This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new 7d08606 Align with 9.0.x - additional generics for Endpoint 7d08606 is described below commit 7d08606d24ebf68f6c1e6fc352f549d9ada473f6 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Feb 17 14:24:01 2022 +0000 Align with 9.0.x - additional generics for Endpoint Backported primarily to align 8.5.x with 9.0.x to simplify additional backports. Due to type erasure, this should be binary compatible with existing compipled code. Source may need changes and recompilation. --- java/org/apache/coyote/AbstractProcessor.java | 6 +++--- java/org/apache/coyote/AbstractProtocol.java | 6 +++--- java/org/apache/coyote/ajp/AbstractAjpProtocol.java | 4 ++-- java/org/apache/coyote/ajp/AjpProcessor.java | 2 +- java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java | 6 +++--- java/org/apache/coyote/http11/AbstractHttp11Protocol.java | 4 ++-- java/org/apache/coyote/http11/Http11Processor.java | 2 +- java/org/apache/tomcat/util/net/AbstractEndpoint.java | 7 +++++-- java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java | 2 +- java/org/apache/tomcat/util/net/AprEndpoint.java | 2 +- java/org/apache/tomcat/util/net/Nio2Endpoint.java | 2 +- java/org/apache/tomcat/util/net/NioEndpoint.java | 2 +- java/org/apache/tomcat/util/net/SocketWrapperBase.java | 6 +++--- .../apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java | 2 +- 14 files changed, 28 insertions(+), 25 deletions(-) diff --git a/java/org/apache/coyote/AbstractProcessor.java b/java/org/apache/coyote/AbstractProcessor.java index 4b10ef5..47762bc 100644 --- a/java/org/apache/coyote/AbstractProcessor.java +++ b/java/org/apache/coyote/AbstractProcessor.java @@ -63,7 +63,7 @@ public abstract class AbstractProcessor extends AbstractProcessorLight implement * current async generation. This prevents the response mix-up. */ private volatile long asyncTimeoutGeneration = 0; - protected final AbstractEndpoint<?> endpoint; + protected final AbstractEndpoint<?,?> endpoint; protected final Request request; protected final Response response; protected volatile SocketWrapperBase<?> socketWrapper = null; @@ -77,12 +77,12 @@ public abstract class AbstractProcessor extends AbstractProcessorLight implement protected final UserDataHelper userDataHelper; - public AbstractProcessor(AbstractEndpoint<?> endpoint) { + public AbstractProcessor(AbstractEndpoint<?,?> endpoint) { this(endpoint, new Request(), new Response()); } - protected AbstractProcessor(AbstractEndpoint<?> endpoint, Request coyoteRequest, + protected AbstractProcessor(AbstractEndpoint<?,?> endpoint, Request coyoteRequest, Response coyoteResponse) { this.endpoint = endpoint; asyncStateMachine = new AsyncStateMachine(this); diff --git a/java/org/apache/coyote/AbstractProtocol.java b/java/org/apache/coyote/AbstractProtocol.java index d894d47..d3f83a7 100644 --- a/java/org/apache/coyote/AbstractProtocol.java +++ b/java/org/apache/coyote/AbstractProtocol.java @@ -75,7 +75,7 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, * ProtocolHandler implementation (ProtocolHandler using NIO, requires NIO * Endpoint etc.). */ - private final AbstractEndpoint<S> endpoint; + private final AbstractEndpoint<S,?> endpoint; private Handler<S> handler; @@ -91,7 +91,7 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, private AsyncTimeout asyncTimeout = null; - public AbstractProtocol(AbstractEndpoint<S> endpoint) { + public AbstractProtocol(AbstractEndpoint<S,?> endpoint) { this.endpoint = endpoint; setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); setTcpNoDelay(Constants.DEFAULT_TCP_NO_DELAY); @@ -444,7 +444,7 @@ public abstract class AbstractProtocol<S> implements ProtocolHandler, // ----------------------------------------------- Accessors for sub-classes - protected AbstractEndpoint<S> getEndpoint() { + protected AbstractEndpoint<S,?> getEndpoint() { return endpoint; } diff --git a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java index 1bc9816..70f392f 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java @@ -44,7 +44,7 @@ public abstract class AbstractAjpProtocol<S> extends AbstractProtocol<S> { protected static final StringManager sm = StringManager.getManager(AbstractAjpProtocol.class); - public AbstractAjpProtocol(AbstractEndpoint<S> endpoint) { + public AbstractAjpProtocol(AbstractEndpoint<S,?> endpoint) { super(endpoint); setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT); // AJP does not use Send File @@ -69,7 +69,7 @@ public abstract class AbstractAjpProtocol<S> extends AbstractProtocol<S> { * Overridden to make getter accessible to other classes in this package. */ @Override - protected AbstractEndpoint<S> getEndpoint() { + protected AbstractEndpoint<S,?> getEndpoint() { return super.getEndpoint(); } diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java index 69db2e4..322a14e 100644 --- a/java/org/apache/coyote/ajp/AjpProcessor.java +++ b/java/org/apache/coyote/ajp/AjpProcessor.java @@ -267,7 +267,7 @@ public class AjpProcessor extends AbstractProcessor { // ------------------------------------------------------------ Constructor - public AjpProcessor(int packetSize, AbstractEndpoint<?> endpoint) { + public AjpProcessor(int packetSize, AbstractEndpoint<?,?> endpoint) { super(endpoint); diff --git a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java index f8cfe05..d988095 100644 --- a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java +++ b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java @@ -22,15 +22,15 @@ import org.apache.tomcat.util.net.openssl.OpenSSLImplementation; public abstract class AbstractHttp11JsseProtocol<S> extends AbstractHttp11Protocol<S> { - public AbstractHttp11JsseProtocol(AbstractJsseEndpoint<S> endpoint) { + public AbstractHttp11JsseProtocol(AbstractJsseEndpoint<S,?> endpoint) { super(endpoint); } @Override - protected AbstractJsseEndpoint<S> getEndpoint() { + protected AbstractJsseEndpoint<S,?> getEndpoint() { // Over-ridden to add cast - return (AbstractJsseEndpoint<S>) super.getEndpoint(); + return (AbstractJsseEndpoint<S,?>) super.getEndpoint(); } diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java index 30f5957..8c5b3f4 100644 --- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java +++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java @@ -59,7 +59,7 @@ public abstract class AbstractHttp11Protocol<S> extends AbstractProtocol<S> { private final CompressionConfig compressionConfig = new CompressionConfig(); - public AbstractHttp11Protocol(AbstractEndpoint<S> endpoint) { + public AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint) { super(endpoint); setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT); ConnectionHandler<S> cHandler = new ConnectionHandler<>(this); @@ -120,7 +120,7 @@ public abstract class AbstractHttp11Protocol<S> extends AbstractProtocol<S> { * Over-ridden here to make the method visible to nested classes. */ @Override - protected AbstractEndpoint<S> getEndpoint() { + protected AbstractEndpoint<S,?> getEndpoint() { return super.getEndpoint(); } diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 196dc33..6751f74 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -183,7 +183,7 @@ public class Http11Processor extends AbstractProcessor { @SuppressWarnings("deprecation") - public Http11Processor(AbstractHttp11Protocol<?> protocol, AbstractEndpoint<?> endpoint) { + public Http11Processor(AbstractHttp11Protocol<?> protocol, AbstractEndpoint<?,?> endpoint) { super(endpoint); this.protocol = protocol; diff --git a/java/org/apache/tomcat/util/net/AbstractEndpoint.java b/java/org/apache/tomcat/util/net/AbstractEndpoint.java index 1ce26b7..2b8c900 100644 --- a/java/org/apache/tomcat/util/net/AbstractEndpoint.java +++ b/java/org/apache/tomcat/util/net/AbstractEndpoint.java @@ -51,12 +51,15 @@ import org.apache.tomcat.util.threads.TaskThreadFactory; import org.apache.tomcat.util.threads.ThreadPoolExecutor; /** - * @param <S> The type for the sockets managed by this endpoint. + * @param <S> The type used by the socket wrapper associated with this endpoint. + * May be the same as U. + * @param <U> The type of the underlying socket used by this endpoint. May be + * the same as S. * * @author Mladen Turk * @author Remy Maucherat */ -public abstract class AbstractEndpoint<S> { +public abstract class AbstractEndpoint<S,U> { // -------------------------------------------------------------- Constants diff --git a/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java b/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java index 16ce41e..9cf780f 100644 --- a/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java +++ b/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java @@ -32,7 +32,7 @@ import org.apache.tomcat.util.compat.JreCompat; import org.apache.tomcat.util.net.openssl.OpenSSLImplementation; import org.apache.tomcat.util.net.openssl.ciphers.Cipher; -public abstract class AbstractJsseEndpoint<S> extends AbstractEndpoint<S> { +public abstract class AbstractJsseEndpoint<S,U> extends AbstractEndpoint<S,U> { private String sslImplementationName = null; private int sniParseLimit = 64 * 1024; diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java b/java/org/apache/tomcat/util/net/AprEndpoint.java index 8653707..75ffdf7 100644 --- a/java/org/apache/tomcat/util/net/AprEndpoint.java +++ b/java/org/apache/tomcat/util/net/AprEndpoint.java @@ -76,7 +76,7 @@ import org.apache.tomcat.util.net.openssl.OpenSSLUtil; * @author Mladen Turk * @author Remy Maucherat */ -public class AprEndpoint extends AbstractEndpoint<Long> implements SNICallBack { +public class AprEndpoint extends AbstractEndpoint<Long,Long> implements SNICallBack { // -------------------------------------------------------------- Constants diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java index 30c054d..4c9ecc0 100644 --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java @@ -51,7 +51,7 @@ import org.apache.tomcat.util.net.jsse.JSSESupport; /** * NIO2 endpoint. */ -public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel> { +public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel,AsynchronousSocketChannel> { // -------------------------------------------------------------- Constants diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java b/java/org/apache/tomcat/util/net/NioEndpoint.java index e2466de..cce04ff 100644 --- a/java/org/apache/tomcat/util/net/NioEndpoint.java +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java @@ -69,7 +69,7 @@ import org.apache.tomcat.util.net.jsse.JSSESupport; * @author Mladen Turk * @author Remy Maucherat */ -public class NioEndpoint extends AbstractJsseEndpoint<NioChannel> { +public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> { // -------------------------------------------------------------- Constants diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java b/java/org/apache/tomcat/util/net/SocketWrapperBase.java index d6f224c..3db0812 100644 --- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java +++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java @@ -42,7 +42,7 @@ public abstract class SocketWrapperBase<E> { protected static final StringManager sm = StringManager.getManager(SocketWrapperBase.class); private final E socket; - private final AbstractEndpoint<E> endpoint; + private final AbstractEndpoint<E,?> endpoint; // Volatile because I/O and setting the timeout values occurs on a different // thread to the thread checking the timeout. @@ -103,7 +103,7 @@ public abstract class SocketWrapperBase<E> { protected final Semaphore writePending; protected volatile OperationState<?> writeOperation = null; - public SocketWrapperBase(E socket, AbstractEndpoint<E> endpoint) { + public SocketWrapperBase(E socket, AbstractEndpoint<E,?> endpoint) { this.socket = socket; this.endpoint = endpoint; if (endpoint.getUseAsyncIO() || needSemaphores()) { @@ -119,7 +119,7 @@ public abstract class SocketWrapperBase<E> { return socket; } - public AbstractEndpoint<E> getEndpoint() { + public AbstractEndpoint<E,?> getEndpoint() { return endpoint; } diff --git a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java index 360c415..81043d8 100644 --- a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java +++ b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java @@ -228,7 +228,7 @@ public class WsRemoteEndpointImplServer extends WsRemoteEndpointImplBase { if (sh != null) { if (useDispatch) { OnResultRunnable r = new OnResultRunnable(sh, t); - AbstractEndpoint<?> endpoint = socketWrapper.getEndpoint(); + AbstractEndpoint<?,?> endpoint = socketWrapper.getEndpoint(); Executor containerExecutor = endpoint.getExecutor(); if (endpoint.isRunning() && containerExecutor != null) { containerExecutor.execute(r); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org