You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/07/01 07:49:49 UTC
[tomcat] 01/02: Align with 8.5.x.
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 45170f0138845e609869afb70564b1023ff21711
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Sun Jun 30 23:41:22 2019 +0100
Align with 8.5.x.
---
.../apache/tomcat/websocket/server/Constants.java | 7 ++++--
.../server/DefaultServerEndpointConfigurator.java | 6 +++--
.../websocket/server/LocalStrings.properties | 3 +--
.../tomcat/websocket/server/UpgradeUtil.java | 12 +++++++---
.../tomcat/websocket/server/UriTemplate.java | 3 +--
.../apache/tomcat/websocket/server/WsFilter.java | 2 --
.../tomcat/websocket/server/WsFrameServer.java | 5 ++++-
.../websocket/server/WsHandshakeRequest.java | 4 +---
.../server/WsRemoteEndpointImplServer.java | 4 ++--
java/org/apache/tomcat/websocket/server/WsSci.java | 6 ++---
.../tomcat/websocket/server/WsServerContainer.java | 26 +++++++---------------
.../tomcat/websocket/server/WsWriteTimeout.java | 5 +----
12 files changed, 38 insertions(+), 45 deletions(-)
diff --git a/java/org/apache/tomcat/websocket/server/Constants.java b/java/org/apache/tomcat/websocket/server/Constants.java
index 8a86d70..4afb1a7 100644
--- a/java/org/apache/tomcat/websocket/server/Constants.java
+++ b/java/org/apache/tomcat/websocket/server/Constants.java
@@ -21,8 +21,11 @@ package org.apache.tomcat.websocket.server;
*/
public class Constants {
- protected static final String PACKAGE_NAME =
- Constants.class.getPackage().getName();
+ /**
+ * @deprecated. Will be removed in 8.5.x onwards.
+ */
+ @Deprecated
+ protected static final String PACKAGE_NAME = Constants.class.getPackage().getName();
public static final String BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM =
"org.apache.tomcat.websocket.binaryBufferSize";
diff --git a/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java b/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java
index 64ac8ca..c6cbbd6 100644
--- a/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java
+++ b/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java
@@ -33,8 +33,10 @@ public class DefaultServerEndpointConfigurator
public <T> T getEndpointInstance(Class<T> clazz)
throws InstantiationException {
try {
- return clazz.newInstance();
- } catch (IllegalAccessException e) {
+ return clazz.getConstructor().newInstance();
+ } catch (InstantiationException e) {
+ throw e;
+ } catch (ReflectiveOperationException e) {
InstantiationException ie = new InstantiationException();
ie.initCause(e);
throw ie;
diff --git a/java/org/apache/tomcat/websocket/server/LocalStrings.properties b/java/org/apache/tomcat/websocket/server/LocalStrings.properties
index c987458..85cedd6 100644
--- a/java/org/apache/tomcat/websocket/server/LocalStrings.properties
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings.properties
@@ -17,9 +17,8 @@ sci.noWebSocketSupport=JSR 356 WebSocket (Java WebSocket 1.1) support is not ava
serverContainer.addNotAllowed=No further Endpoints may be registered once an attempt has been made to use one of the previously registered endpoints
serverContainer.configuratorFail=Failed to create configurator of type [{0}] for POJO of type [{1}]
-serverContainer.duplicatePaths=Multiple Endpoints may not be deployed to the same path [{0}] : existing endpoint was {1} and new endpoint is {2}
+serverContainer.duplicatePaths=Multiple Endpoints may not be deployed to the same path [{0}] : existing endpoint was [{1}] and new endpoint is [{2}]
serverContainer.encoderFail=Unable to create encoder of type [{0}]
-serverContainer.endpointDeploy=Endpoint class [{0}] deploying to path [{1}] in ServletContext [{2}]
serverContainer.failedDeployment=Deployment of WebSocket Endpoints to the web application with path [{0}] is not permitted due to the failure of a previous deployment
serverContainer.missingAnnotation=Cannot deploy POJO class [{0}] as it is not annotated with @ServerEndpoint
serverContainer.missingEndpoint=An Endpoint instance has been request for path [{0}] but no matching Endpoint class was found
diff --git a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
index 7a752ff..36dfbc5 100644
--- a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
+++ b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
@@ -50,8 +50,8 @@ import org.apache.tomcat.websocket.pojo.PojoEndpointServer;
public class UpgradeUtil {
- private static final StringManager sm = StringManager
- .getManager(org.apache.tomcat.websocket.server.Constants.PACKAGE_NAME);
+ private static final StringManager sm =
+ StringManager.getManager(UpgradeUtil.class.getPackage().getName());
private static final byte[] WS_ACCEPT =
"258EAFA5-E914-47DA-95CA-C5AB0DC85B11".getBytes(
StandardCharsets.ISO_8859_1);
@@ -67,6 +67,11 @@ public class UpgradeUtil {
* Note: RFC 2616 does not limit HTTP upgrade to GET requests but the Java
* WebSocket spec 1.0, section 8.2 implies such a limitation and RFC
* 6455 section 4.1 requires that a WebSocket Upgrade uses GET.
+ * @param request The request to check if it is an HTTP upgrade request for
+ * a WebSocket connection
+ * @param response The response associated with the request
+ * @return <code>true</code> if the request includes a HTTP Upgrade request
+ * for the WebSocket protocol, otherwise <code>false</code>
*/
public static boolean isWebSocketUpgradeRequest(ServletRequest request,
ServletResponse response) {
@@ -222,7 +227,7 @@ public class UpgradeUtil {
ep = new PojoEndpointServer();
// Need to make path params available to POJO
perSessionServerEndpointConfig.getUserProperties().put(
- PojoEndpointServer.POJO_PATH_PARAM_KEY, pathParams);
+ org.apache.tomcat.websocket.pojo.Constants.POJO_PATH_PARAM_KEY, pathParams);
}
} catch (InstantiationException e) {
throw new ServletException(e);
@@ -279,6 +284,7 @@ public class UpgradeUtil {
return result;
}
+
private static void append(StringBuilder sb, Extension extension) {
if (extension == null || extension.getName() == null || extension.getName().length() == 0) {
return;
diff --git a/java/org/apache/tomcat/websocket/server/UriTemplate.java b/java/org/apache/tomcat/websocket/server/UriTemplate.java
index 26ea7f3..172359a 100644
--- a/java/org/apache/tomcat/websocket/server/UriTemplate.java
+++ b/java/org/apache/tomcat/websocket/server/UriTemplate.java
@@ -34,8 +34,7 @@ import org.apache.tomcat.util.res.StringManager;
*/
public class UriTemplate {
- private static final StringManager sm =
- StringManager.getManager(Constants.PACKAGE_NAME);
+ private static final StringManager sm = StringManager.getManager(UriTemplate.class);
private final String normalized;
private final List<Segment> segments = new ArrayList<Segment>();
diff --git a/java/org/apache/tomcat/websocket/server/WsFilter.java b/java/org/apache/tomcat/websocket/server/WsFilter.java
index f4ee916..58a1bf7 100644
--- a/java/org/apache/tomcat/websocket/server/WsFilter.java
+++ b/java/org/apache/tomcat/websocket/server/WsFilter.java
@@ -83,6 +83,4 @@ public class WsFilter implements Filter {
public void destroy() {
// NO-OP
}
-
-
}
diff --git a/java/org/apache/tomcat/websocket/server/WsFrameServer.java b/java/org/apache/tomcat/websocket/server/WsFrameServer.java
index 2576af8..e5e0511 100644
--- a/java/org/apache/tomcat/websocket/server/WsFrameServer.java
+++ b/java/org/apache/tomcat/websocket/server/WsFrameServer.java
@@ -30,7 +30,7 @@ import org.apache.tomcat.websocket.WsSession;
public class WsFrameServer extends WsFrameBase {
private final Log log = LogFactory.getLog(WsFrameServer.class); // must not be static
- private static final StringManager sm = StringManager.getManager(Constants.PACKAGE_NAME);
+ private static final StringManager sm = StringManager.getManager(WsFrameServer.class);
private final AbstractServletInputStream sis;
private final Object connectionReadLock = new Object();
@@ -45,6 +45,9 @@ public class WsFrameServer extends WsFrameBase {
/**
* Called when there is data in the ServletInputStream to process.
+ *
+ * @throws IOException if an I/O error occurs while processing the available
+ * data
*/
public void onDataAvailable() throws IOException {
if (log.isDebugEnabled()) {
diff --git a/java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java b/java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java
index 7717ccf..70c5078 100644
--- a/java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java
+++ b/java/org/apache/tomcat/websocket/server/WsHandshakeRequest.java
@@ -69,9 +69,7 @@ public class WsHandshakeRequest implements HandshakeRequest {
Arrays.asList(entry.getValue())));
}
for (Entry<String,String> entry : pathParams.entrySet()) {
- newParameters.put(entry.getKey(),
- Collections.unmodifiableList(
- Arrays.asList(entry.getValue())));
+ newParameters.put(entry.getKey(), Collections.singletonList(entry.getValue()));
}
parameterMap = Collections.unmodifiableMap(newParameters);
diff --git a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
index e53bc97..1b0494f 100644
--- a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
+++ b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
@@ -112,9 +112,9 @@ public class WsRemoteEndpointImplServer extends WsRemoteEndpointImplBase {
clearHandler(ioe, useDispatch);
close();
}
+
if (!complete) {
// Async write is in progress
-
long timeout = getSendTimeout();
if (timeout > 0) {
// Register with timeout thread
@@ -136,7 +136,7 @@ public class WsRemoteEndpointImplServer extends WsRemoteEndpointImplBase {
}
try {
sos.close();
- } catch (IOException e) {
+ } catch (Exception e) {
if (log.isInfoEnabled()) {
log.info(sm.getString("wsRemoteEndpointServer.closeFailed"), e);
}
diff --git a/java/org/apache/tomcat/websocket/server/WsSci.java b/java/org/apache/tomcat/websocket/server/WsSci.java
index db9bbe1..d451f6f 100644
--- a/java/org/apache/tomcat/websocket/server/WsSci.java
+++ b/java/org/apache/tomcat/websocket/server/WsSci.java
@@ -92,7 +92,7 @@ public class WsSci implements ServletContainerInitializer {
}
if (ServerApplicationConfig.class.isAssignableFrom(clazz)) {
serverApplicationConfigs.add(
- (ServerApplicationConfig) clazz.newInstance());
+ (ServerApplicationConfig) clazz.getConstructor().newInstance());
}
if (Endpoint.class.isAssignableFrom(clazz)) {
@SuppressWarnings("unchecked")
@@ -104,9 +104,7 @@ public class WsSci implements ServletContainerInitializer {
scannedPojoEndpoints.add(clazz);
}
}
- } catch (InstantiationException e) {
- throw new ServletException(e);
- } catch (IllegalAccessException e) {
+ } catch (ReflectiveOperationException e) {
throw new ServletException(e);
}
diff --git a/java/org/apache/tomcat/websocket/server/WsServerContainer.java b/java/org/apache/tomcat/websocket/server/WsServerContainer.java
index 8592a10..33b03d5 100644
--- a/java/org/apache/tomcat/websocket/server/WsServerContainer.java
+++ b/java/org/apache/tomcat/websocket/server/WsServerContainer.java
@@ -53,7 +53,6 @@ import org.apache.tomcat.InstanceManager;
import org.apache.tomcat.util.res.StringManager;
import org.apache.tomcat.websocket.WsSession;
import org.apache.tomcat.websocket.WsWebSocketContainer;
-import org.apache.tomcat.websocket.pojo.PojoEndpointServer;
import org.apache.tomcat.websocket.pojo.PojoMethodMapping;
/**
@@ -69,8 +68,7 @@ import org.apache.tomcat.websocket.pojo.PojoMethodMapping;
public class WsServerContainer extends WsWebSocketContainer
implements ServerContainer {
- private static final StringManager sm =
- StringManager.getManager(Constants.PACKAGE_NAME);
+ private static final StringManager sm = StringManager.getManager(WsServerContainer.class);
private final Log log = LogFactory.getLog(WsServerContainer.class); // must not be static
private static final CloseReason AUTHENTICATED_HTTP_SESSION_CLOSED =
@@ -164,7 +162,8 @@ public class WsServerContainer extends WsWebSocketContainer
* must be called before calling this method.
*
* @param sec The configuration to use when creating endpoint instances
- * @throws DeploymentException
+ * @throws DeploymentException if the endpoint cannot be published as
+ * requested
*/
@Override
public void addEndpoint(ServerEndpointConfig sec) throws DeploymentException {
@@ -197,8 +196,7 @@ public class WsServerContainer extends WsWebSocketContainer
sec.getDecoders(), path);
if (methodMapping.getOnClose() != null || methodMapping.getOnOpen() != null
|| methodMapping.getOnError() != null || methodMapping.hasMessageHandlers()) {
- sec.getUserProperties().put(
- PojoEndpointServer.POJO_METHOD_MAPPING_KEY,
+ sec.getUserProperties().put(org.apache.tomcat.websocket.pojo.Constants.POJO_METHOD_MAPPING_KEY,
methodMapping);
}
@@ -300,13 +298,8 @@ public class WsServerContainer extends WsWebSocketContainer
Configurator configurator = null;
if (!configuratorClazz.equals(Configurator.class)) {
try {
- configurator = annotation.configurator().newInstance();
- } catch (InstantiationException e) {
- throw new DeploymentException(sm.getString(
- "serverContainer.configuratorFail",
- annotation.configurator().getName(),
- pojo.getClass().getName()), e);
- } catch (IllegalAccessException e) {
+ configurator = annotation.configurator().getConstructor().newInstance();
+ } catch (ReflectiveOperationException e) {
throw new DeploymentException(sm.getString(
"serverContainer.configuratorFail",
annotation.configurator().getName(),
@@ -582,11 +575,8 @@ public class WsServerContainer extends WsWebSocketContainer
@SuppressWarnings("unused")
Encoder instance;
try {
- encoder.newInstance();
- } catch(InstantiationException e) {
- throw new DeploymentException(sm.getString(
- "serverContainer.encoderFail", encoder.getName()), e);
- } catch (IllegalAccessException e) {
+ encoder.getConstructor().newInstance();
+ } catch(ReflectiveOperationException e) {
throw new DeploymentException(sm.getString(
"serverContainer.encoderFail", encoder.getName()), e);
}
diff --git a/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java b/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
index 282014c..539730a 100644
--- a/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
+++ b/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
@@ -17,7 +17,6 @@
package org.apache.tomcat.websocket.server;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.atomic.AtomicInteger;
@@ -48,9 +47,7 @@ public class WsWriteTimeout implements BackgroundProcess {
backgroundProcessCount = 0;
long now = System.currentTimeMillis();
- Iterator<WsRemoteEndpointImplServer> iter = endpoints.iterator();
- while (iter.hasNext()) {
- WsRemoteEndpointImplServer endpoint = iter.next();
+ for (WsRemoteEndpointImplServer endpoint : endpoints) {
if (endpoint.getTimeoutExpiry() < now) {
// Background thread, not the thread that triggered the
// write so no need to use a dispatch
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org