(tomcat) branch 10.1.x updated (fea6de2b7f -> 9e43198212)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from fea6de2b7f Improvements to Japanese translations by tak7iji. (markt) new 8d90c1d517 Fix format new d90340b31a Code clean-up - formatting. No functional change. new 70f4e5b84b Code clean-up - formatting. No functional change. new a84d9a7717 Code clean-up - reformatting. No functional change. new 9e43198212 Align with 10.1.x. The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/jakarta/el/LocalStrings.properties| 1 + java/jakarta/servlet/http/HttpServletRequest.java | 3 +- java/jakarta/servlet/http/HttpServletResponse.java | 3 +- .../apache/catalina/ant/AbstractCatalinaTask.java | 58 +++ .../catalina/ant/BaseRedirectorHelperTask.java | 89 --- java/org/apache/catalina/ant/DeployTask.java | 12 +- java/org/apache/catalina/ant/FindLeaksTask.java| 12 +- .../apache/catalina/ant/JKStatusUpdateTask.java| 96 java/org/apache/catalina/ant/JMXGetTask.java | 25 +-- java/org/apache/catalina/ant/JMXQueryTask.java | 19 ++- java/org/apache/catalina/ant/JMXSetTask.java | 35 +++-- java/org/apache/catalina/ant/ListTask.java | 4 +- java/org/apache/catalina/ant/ReloadTask.java | 5 +- java/org/apache/catalina/ant/ResourcesTask.java| 10 +- java/org/apache/catalina/ant/ServerinfoTask.java | 3 +- java/org/apache/catalina/ant/SessionsTask.java | 3 +- .../catalina/ant/SslConnectorCiphersTask.java | 4 +- java/org/apache/catalina/ant/StartTask.java| 4 +- java/org/apache/catalina/ant/StopTask.java | 4 +- java/org/apache/catalina/ant/ThreaddumpTask.java | 4 +- java/org/apache/catalina/ant/UndeployTask.java | 4 +- java/org/apache/catalina/ant/ValidatorTask.java| 12 +- java/org/apache/catalina/ant/VminfoTask.java | 4 +- java/org/apache/catalina/ant/jmx/Arg.java | 8 +- .../catalina/ant/jmx/JMXAccessorCondition.java | 40 +++-- .../catalina/ant/jmx/JMXAccessorConditionBase.java | 36 +++-- .../catalina/ant/jmx/JMXAccessorCreateTask.java| 49 +++--- .../ant/jmx/JMXAccessorEqualsCondition.java| 9 +- .../catalina/ant/jmx/JMXAccessorGetTask.java | 26 ++-- .../catalina/ant/jmx/JMXAccessorInvokeTask.java| 67 .../catalina/ant/jmx/JMXAccessorQueryTask.java | 27 ++-- .../catalina/ant/jmx/JMXAccessorSetTask.java | 44 +++--- .../apache/catalina/ant/jmx/JMXAccessorTask.java | 173 + .../ant/jmx/JMXAccessorUnregisterTask.java | 28 ++-- .../catalina/authenticator/AuthenticatorBase.java | 3 +- .../catalina/authenticator/FormAuthenticator.java | 6 +- .../authenticator/SpnegoAuthenticator.java | 3 +- .../org/apache/catalina/connector/InputBuffer.java | 4 +- java/org/apache/catalina/connector/Request.java| 9 +- .../catalina/core/ApplicationDispatcher.java | 3 +- .../catalina/core/ApplicationFilterChain.java | 3 +- .../core/ApplicationSessionCookieConfig.java | 3 +- .../catalina/core/OpenSSLLifecycleListener.java| 41 +++-- .../core/PropertiesRoleMappingListener.java| 9 +- java/org/apache/catalina/core/StandardContext.java | 7 +- .../apache/catalina/core/StandardHostValve.java| 6 +- java/org/apache/catalina/core/StandardServer.java | 11 +- .../catalina/filters/CsrfPreventionFilter.java | 107 + java/org/apache/catalina/ha/CatalinaCluster.java | 1 + java/org/apache/catalina/ha/ClusterManager.java| 7 +- java/org/apache/catalina/ha/ClusterMessage.java| 2 + .../apache/catalina/ha/deploy/FarmWarDeployer.java | 1 + .../ha/session/ClusterSessionListener.java | 1 + .../apache/catalina/ha/session/DeltaSession.java | 2 + .../catalina/ha/session/SessionMessageImpl.java| 1 + .../apache/catalina/ha/tcp/ReplicationValve.java | 10 +- .../apache/catalina/manager/StatusTransformer.java | 70 ++--- java/org/apache/catalina/realm/CombinedRealm.java | 3 +- java/org/apache/catalina/realm/RealmBase.java | 19 ++- .../apache/catalina/security/SecurityListener.java | 19 +-- .../apache/catalina/session/DataSourceStore.java | 6 +- java/org/apache/catalina/session/ManagerBase.java | 5 + java/org/apache/catalina/ssi/SSIExec.java | 8 +- .../startup/CatalinaBaseConfigurationSource.java | 3 +- java/org/apache/catalina/startup/Tomcat.java | 9 +- .../catalina/storeconfig/CatalinaClusterSF.java| 14 +- .../storeconfig/CertificateStoreAppender.java | 5 +- .../org/apache/
(tomcat) branch main updated (942e0148dd -> 21e4ac2618)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from 942e0148dd Code clean-up - formatting - no functional change new ef0b4b1884 Fix copy/paste of comment from POST to PATCH new 32e316f472 Align with 10.1.x new 21e4ac2618 Fix ordering The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/jakarta/servlet/http/HttpServlet.java | 6 +++--- java/org/apache/catalina/ant/AbstractCatalinaTask.java | 2 +- java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java | 5 + java/org/apache/catalina/authenticator/LocalStrings.properties | 2 +- java/org/apache/catalina/core/ApplicationRequest.java | 1 + java/org/apache/catalina/security/LocalStrings.properties | 8 java/org/apache/catalina/session/LocalStrings.properties | 2 -- 7 files changed, 11 insertions(+), 15 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/03: Align with 10.1.x
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 32e316f4725f46ad98475dff983ba313112467a2 Author: Mark Thomas AuthorDate: Fri May 3 09:23:22 2024 +0100 Align with 10.1.x --- java/org/apache/catalina/ant/AbstractCatalinaTask.java | 2 +- java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java | 5 + java/org/apache/catalina/core/ApplicationRequest.java | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/java/org/apache/catalina/ant/AbstractCatalinaTask.java b/java/org/apache/catalina/ant/AbstractCatalinaTask.java index 02a0d2bdc2..810929a4d9 100644 --- a/java/org/apache/catalina/ant/AbstractCatalinaTask.java +++ b/java/org/apache/catalina/ant/AbstractCatalinaTask.java @@ -289,7 +289,7 @@ public abstract class AbstractCatalinaTask extends BaseRedirectorHelperTask { * Authenticator.setDefault() for authentication as the JRE then provides the DIGEST client implementation. However, * the above two are not compatible. When the request is made, the resulting 401 triggers an exception because, when * using streams, the InputStream is no longer available to send with the repeated request that now includes the - * appropriate Authorization header. The hack is to make a simple OPTIONS request- i.e. without a request body.This + * appropriate Authorization header. The hack is to make a simple OPTIONS request- i.e. without a request body. This * triggers authentication and the requirement to authenticate for this host is cached and used to provide an * appropriate Authorization when the next request is made (that includes a request body). */ diff --git a/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java b/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java index 8358e9f924..0098f6acb7 100644 --- a/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java +++ b/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java @@ -155,10 +155,7 @@ public class JMXAccessorQueryTask extends JMXAccessorTask { } continue; } -if (value == null) { -continue; -} -if ("modelerType".equals(attName)) { +if (value == null || "modelerType".equals(attName)) { continue; } createProperty(pname + attName, value); diff --git a/java/org/apache/catalina/core/ApplicationRequest.java b/java/org/apache/catalina/core/ApplicationRequest.java index add391aa67..80d9a8b19c 100644 --- a/java/org/apache/catalina/core/ApplicationRequest.java +++ b/java/org/apache/catalina/core/ApplicationRequest.java @@ -136,6 +136,7 @@ class ApplicationRequest extends ServletRequestWrapper { return specialsSet.contains(name); } + // -- ServletRequestWrapper Methods /** - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/03: Fix ordering
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 21e4ac26184d22fc02a92d09f43c136544a93521 Author: Mark Thomas AuthorDate: Fri May 3 09:23:27 2024 +0100 Fix ordering --- java/org/apache/catalina/authenticator/LocalStrings.properties | 2 +- java/org/apache/catalina/security/LocalStrings.properties | 8 java/org/apache/catalina/session/LocalStrings.properties | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/java/org/apache/catalina/authenticator/LocalStrings.properties b/java/org/apache/catalina/authenticator/LocalStrings.properties index 4909ee1967..62825a2578 100644 --- a/java/org/apache/catalina/authenticator/LocalStrings.properties +++ b/java/org/apache/catalina/authenticator/LocalStrings.properties @@ -88,7 +88,7 @@ spnegoAuthenticator.authHeaderNotNego=The authorization header sent by the clien spnegoAuthenticator.serviceLoginFail=Unable to login as the service principal spnegoAuthenticator.ticketValidateFail=Failed to validate client supplied ticket +sslAuthenticatorValve.authFailed=Authentication with the provided certificates failed sslAuthenticatorValve.http2=The context [{0}] in virtual host [{1}] is configured to use CLIENT-CERT authentication and [{2}] is configured to support HTTP/2. Use of CLIENT-CERT authentication is not compatible with the use of HTTP/2. sslAuthenticatorValve.noCertificates=No certificates are included with this request -sslAuthenticatorValve.authFailed=Authentication with the provided certificates failed sslAuthenticatorValve.tls13=The context [{0}] in virtual host [{1}] is configured to use CLIENT-CERT authentication and [{2}] is configured to support TLS 1.3 using JSSE. Use of CLIENT-CERT authentication is not compatible with the use of TLS 1.3 and JSSE. diff --git a/java/org/apache/catalina/security/LocalStrings.properties b/java/org/apache/catalina/security/LocalStrings.properties index 03906637c3..0be358ffc4 100644 --- a/java/org/apache/catalina/security/LocalStrings.properties +++ b/java/org/apache/catalina/security/LocalStrings.properties @@ -13,17 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. +SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. +SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. SecurityListener.checkUmaskFail=Start attempted with umask setting of [{0}]. Running Tomcat without a umask at least as restrictive as [{1}] has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) SecurityListener.checkUmaskNone=No umask setting was found in system property [{0}]. However, it appears Tomcat is running on a platform that supports umask. The system property is typically set in CATALINA_HOME/bin/catalina.sh. The Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) expects a umask at least as restrictive as [{1}] SecurityListener.checkUmaskParseFail=Failed to parse value [{0}] as a valid umask. SecurityListener.checkUmaskSkip=Unable to determine umask. It appears Tomcat is running on Windows so skip the umask check. SecurityListener.checkUserWarning=Start attempted while running as user [{0}]. Running Tomcat as this user has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) -SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. -SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. -SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. listener.notServer=This listener must only be nested within Server elements, but is in [{0}]. tlsCertRenewalListener.notRenewed=[{0}], TLS virtual host [{1}] with name [{2}] that expires on [{3}] is overdue for renewal tlsCertRenewalListener.reloadFailed=[{0}], TLS virtual host [{1}] reload of TLS configuration failed -tlsCertRenewalListener.reloadSuccess=[{0}], TLS virtual host [{1}] reloaded TLS configuration \ No newline at end of file +tlsCertRenewalListener.reloadSuccess=[{0}], TLS virtual host [{1}] reloaded TLS configuration diff --git a/java/org/apache/catalina/session/LocalStrings.properties b/java/org/apache/catalina/session/LocalStrings.properties index 20c73e6d32..3b963c9ea0 100644 --- a/java/org/apache/catalina/session
(tomcat) 01/03: Fix copy/paste of comment from POST to PATCH
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit ef0b4b18846d3ee4c9f6a9b4d8819c28645795c2 Author: Mark Thomas AuthorDate: Fri May 3 08:30:03 2024 +0100 Fix copy/paste of comment from POST to PATCH --- java/jakarta/servlet/http/HttpServlet.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/jakarta/servlet/http/HttpServlet.java b/java/jakarta/servlet/http/HttpServlet.java index 0bcdbcbbf7..354d51fd97 100644 --- a/java/jakarta/servlet/http/HttpServlet.java +++ b/java/jakarta/servlet/http/HttpServlet.java @@ -242,10 +242,10 @@ public abstract class HttpServlet extends GenericServlet { * When using HTTP 1.1 chunked encoding (which means that the response has a Transfer-Encoding header), do not set * the Content-Length header. * - * This method does not need to be either safe or idempotent. Operations requested through POST can have side - * effects for which the user can be held accountable, for example, updating stored data or buying items online. + * This method is neither safe nor idempotent. Operations requested through PATCH have side effects for which the + * user can be held accountable. * - * If the HTTP POST request is incorrectly formatted, doPost returns an HTTP "Bad Request" message. + * If the HTTP PATCH request is incorrectly formatted, doPost returns an HTTP "Bad Request" message. * * @param req an {@link HttpServletRequest} object that contains the request the client has made of the servlet * @param resp an {@link HttpServletResponse} object that contains the response the servlet sends to the client - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/04: Code clean-up - formatting. No functional change.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 7151eaa7ec1c2e43a9fd88de006765c911b0ea0e Author: Mark Thomas AuthorDate: Fri May 3 08:06:47 2024 +0100 Code clean-up - formatting. No functional change. --- java/jakarta/servlet/http/HttpServletRequest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/jakarta/servlet/http/HttpServletRequest.java b/java/jakarta/servlet/http/HttpServletRequest.java index 8e36a97ccd..277bc32fbc 100644 --- a/java/jakarta/servlet/http/HttpServletRequest.java +++ b/java/jakarta/servlet/http/HttpServletRequest.java @@ -511,8 +511,7 @@ public interface HttpServletRequest extends ServletRequest { * * @since Servlet 3.1 */ - T upgrade(Class httpUpgradeHandlerClass) -throws IOException, ServletException; + T upgrade(Class httpUpgradeHandlerClass) throws IOException, ServletException; /** * Obtain a Map of the trailer fields that is not backed by the request object. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/04: Code clean-up - formatting. No functional change.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 513da9085a12b8c51764033f80249b99d736ed9a Author: Mark Thomas AuthorDate: Fri May 3 08:11:25 2024 +0100 Code clean-up - formatting. No functional change. --- .../apache/catalina/ant/AbstractCatalinaTask.java | 58 ++--- .../catalina/ant/BaseRedirectorHelperTask.java | 89 java/org/apache/catalina/ant/DeployTask.java | 12 ++- java/org/apache/catalina/ant/FindLeaksTask.java| 12 +-- .../apache/catalina/ant/JKStatusUpdateTask.java| 96 -- java/org/apache/catalina/ant/JMXGetTask.java | 25 +++--- java/org/apache/catalina/ant/JMXQueryTask.java | 19 +++-- java/org/apache/catalina/ant/JMXSetTask.java | 35 java/org/apache/catalina/ant/ListTask.java | 4 +- java/org/apache/catalina/ant/ReloadTask.java | 5 +- java/org/apache/catalina/ant/ResourcesTask.java| 10 +-- java/org/apache/catalina/ant/ServerinfoTask.java | 3 +- java/org/apache/catalina/ant/SessionsTask.java | 3 +- .../catalina/ant/SslConnectorCiphersTask.java | 4 +- java/org/apache/catalina/ant/StartTask.java| 4 +- java/org/apache/catalina/ant/StopTask.java | 4 +- java/org/apache/catalina/ant/ThreaddumpTask.java | 4 +- java/org/apache/catalina/ant/UndeployTask.java | 4 +- java/org/apache/catalina/ant/ValidatorTask.java| 9 +- java/org/apache/catalina/ant/VminfoTask.java | 4 +- 20 files changed, 167 insertions(+), 237 deletions(-) diff --git a/java/org/apache/catalina/ant/AbstractCatalinaTask.java b/java/org/apache/catalina/ant/AbstractCatalinaTask.java index 61ac76e5e5..02a0d2bdc2 100644 --- a/java/org/apache/catalina/ant/AbstractCatalinaTask.java +++ b/java/org/apache/catalina/ant/AbstractCatalinaTask.java @@ -32,11 +32,11 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; /** - * Abstract base class for Ant tasks that interact with the Manager web - * application for dynamically deploying and undeploying applications. These - * tasks require Ant 1.4 or later. + * Abstract base class for Ant tasks that interact with the Manager web application for dynamically deploying + * and undeploying applications. These tasks require Ant 1.4 or later. * * @author Craig R. McClanahan + * * @since 4.1 */ public abstract class AbstractCatalinaTask extends BaseRedirectorHelperTask { @@ -107,16 +107,14 @@ public abstract class AbstractCatalinaTask extends BaseRedirectorHelperTask { } /** - * If set to true - ignore the constraint of the first line of the response - * message that must be "OK -". + * If set to true - ignore the constraint of the first line of the response message that must be "OK -". * - * When this attribute is set to {@code false} (the default), the first line - * of server response is expected to start with "OK -". If it does not then - * the task is considered as failed and the first line is treated as an - * error message. + * When this attribute is set to {@code false} (the default), the first line of server response is expected to start + * with "OK -". If it does not then the task is considered as failed and the first line is treated as an error + * message. * - * When this attribute is set to {@code true}, the first line of the - * response is treated like any other, regardless of its text. + * When this attribute is set to {@code true}, the first line of the response is treated like any other, regardless + * of its text. */ protected boolean ignoreResponseConstraint = false; @@ -132,9 +130,8 @@ public abstract class AbstractCatalinaTask extends BaseRedirectorHelperTask { // - Public Methods /** - * Execute the specified command. This logic only performs the common - * attribute validation required by all subclasses; it does not perform any - * functional logic directly. + * Execute the specified command. This logic only performs the common attribute validation required by all + * subclasses; it does not perform any functional logic directly. * * @exception BuildException if a validation error occurs */ @@ -159,19 +156,18 @@ public abstract class AbstractCatalinaTask extends BaseRedirectorHelperTask { /** - * Execute the specified command, based on the configured properties. The - * input stream will be closed upon completion of this task, whether it was - * executed successfully or not. + * Execute the specified command, based on the configured properties. The input stream will be closed upon + * completion of this task, whether it was executed successfully or not
(tomcat) 04/04: Code clean-up - formatting - no functional change
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 942e0148ddbcb6735e17ec5037fdac2781d55ce9 Author: Mark Thomas AuthorDate: Fri May 3 08:18:29 2024 +0100 Code clean-up - formatting - no functional change Re-applying formatting to previously formatted code --- .../catalina/authenticator/AuthenticatorBase.java | 3 +- .../catalina/authenticator/BasicAuthenticator.java | 4 +- .../authenticator/SpnegoAuthenticator.java | 3 +- java/org/apache/catalina/connector/Connector.java | 8 +- .../org/apache/catalina/connector/InputBuffer.java | 4 +- java/org/apache/catalina/connector/Request.java| 6 +- java/org/apache/catalina/connector/Response.java | 1 - .../catalina/core/ApplicationDispatcher.java | 3 +- .../catalina/core/ApplicationFilterChain.java | 3 +- .../catalina/core/ApplicationHttpRequest.java | 1 - .../core/ApplicationSessionCookieConfig.java | 3 +- .../catalina/core/OpenSSLLifecycleListener.java| 41 .../core/PropertiesRoleMappingListener.java| 9 +- java/org/apache/catalina/core/StandardContext.java | 7 +- .../apache/catalina/core/StandardHostValve.java| 6 +- java/org/apache/catalina/core/StandardServer.java | 11 +-- .../catalina/filters/CsrfPreventionFilter.java | 107 - java/org/apache/catalina/ha/CatalinaCluster.java | 1 + java/org/apache/catalina/ha/ClusterManager.java| 7 +- java/org/apache/catalina/ha/ClusterMessage.java| 2 + .../apache/catalina/ha/deploy/FarmWarDeployer.java | 4 +- .../ha/session/ClusterSessionListener.java | 1 + .../apache/catalina/ha/session/DeltaSession.java | 2 + .../catalina/ha/session/SessionMessageImpl.java| 1 + .../apache/catalina/ha/tcp/ReplicationValve.java | 10 +- .../apache/catalina/manager/StatusTransformer.java | 70 +- java/org/apache/catalina/mbeans/MBeanUtils.java| 5 +- java/org/apache/catalina/realm/CombinedRealm.java | 3 +- java/org/apache/catalina/realm/RealmBase.java | 19 ++-- .../apache/catalina/security/SecurityListener.java | 19 ++-- .../apache/catalina/session/DataSourceStore.java | 6 +- .../startup/CatalinaBaseConfigurationSource.java | 3 +- java/org/apache/catalina/startup/Tomcat.java | 9 +- 33 files changed, 196 insertions(+), 186 deletions(-) diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java b/java/org/apache/catalina/authenticator/AuthenticatorBase.java index e52fa2f109..fc8b13cd7a 100644 --- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java +++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java @@ -975,7 +975,8 @@ public abstract class AuthenticatorBase extends ValveBase implements Authenticat associate(ssoId, request.getSessionInternal(true)); if (log.isDebugEnabled()) { -log.debug(sm.getString("authenticator.reauthentication", request.getUserPrincipal().getName(), request.getAuthType())); +log.debug(sm.getString("authenticator.reauthentication", request.getUserPrincipal().getName(), +request.getAuthType())); } } diff --git a/java/org/apache/catalina/authenticator/BasicAuthenticator.java b/java/org/apache/catalina/authenticator/BasicAuthenticator.java index 8421dc54b1..17c4a85857 100644 --- a/java/org/apache/catalina/authenticator/BasicAuthenticator.java +++ b/java/org/apache/catalina/authenticator/BasicAuthenticator.java @@ -145,8 +145,8 @@ public class BasicAuthenticator extends AuthenticatorBase { /** * Parse the HTTP Authorization header for BASIC authentication as per RFC 7617. * - * @param input The header value to parse in-place - * @param charset The character set to use to convert the bytes to a string + * @param input The header value to parse in-place + * @param charset The character set to use to convert the bytes to a string * * @throws IllegalArgumentException If the header does not conform to RFC 7617 */ diff --git a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java index dab5cdfed3..9e4537ce0c 100644 --- a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java +++ b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java @@ -266,7 +266,8 @@ public class SpnegoAuthenticator extends AuthenticatorBase { } // Send response token on success and failure -response.setHeader(AUTH_HEADER_NAME, AUTH_HEADER_VALUE_NEGOTIATE + " " + Base64.getEncoder().encodeToString(outToken)); +response.setHeader(AUTH_HEADER_NAME, +AUTH_HEADER_V
(tomcat) 01/04: Code clean-up - formatting. No functional change.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 16f3011acbeb32c7a1ec33384fe89b8580f1edce Author: Mark Thomas AuthorDate: Fri May 3 08:02:22 2024 +0100 Code clean-up - formatting. No functional change. --- .../catalina/storeconfig/CatalinaClusterSF.java| 12 +- .../storeconfig/CertificateStoreAppender.java | 5 +- .../org/apache/catalina/storeconfig/ChannelSF.java | 7 +- .../apache/catalina/storeconfig/ConnectorSF.java | 17 +-- .../storeconfig/ConnectorStoreAppender.java| 84 +-- .../catalina/storeconfig/CredentialHandlerSF.java | 20 +-- .../storeconfig/GlobalNamingResourcesSF.java | 17 +-- .../apache/catalina/storeconfig/IStoreConfig.java | 51 +++ .../apache/catalina/storeconfig/IStoreFactory.java | 11 +- .../apache/catalina/storeconfig/InterceptorSF.java | 22 ++- .../apache/catalina/storeconfig/JarScannerSF.java | 8 +- java/org/apache/catalina/storeconfig/LoaderSF.java | 24 ++- .../org/apache/catalina/storeconfig/ManagerSF.java | 26 ++-- .../catalina/storeconfig/NamingResourcesSF.java| 11 +- .../apache/catalina/storeconfig/OpenSSLConfSF.java | 5 +- .../catalina/storeconfig/PersistentManagerSF.java | 5 +- java/org/apache/catalina/storeconfig/RealmSF.java | 26 ++-- .../catalina/storeconfig/SSLHostConfigSF.java | 8 +- java/org/apache/catalina/storeconfig/SenderSF.java | 7 +- .../catalina/storeconfig/StandardContextSF.java| 117 +++ .../catalina/storeconfig/StandardEngineSF.java | 11 +- .../catalina/storeconfig/StandardHostSF.java | 15 +- .../catalina/storeconfig/StandardServerSF.java | 22 ++- .../catalina/storeconfig/StandardServiceSF.java| 5 +- .../apache/catalina/storeconfig/StoreAppender.java | 164 ++--- .../apache/catalina/storeconfig/StoreConfig.java | 76 -- .../storeconfig/StoreConfigLifecycleListener.java | 29 ++-- .../catalina/storeconfig/StoreContextAppender.java | 78 +- .../catalina/storeconfig/StoreDescription.java | 46 ++ .../catalina/storeconfig/StoreFactoryBase.java | 72 - .../catalina/storeconfig/StoreFactoryRule.java | 46 +++--- .../catalina/storeconfig/StoreFileMover.java | 26 ++-- .../apache/catalina/storeconfig/StoreLoader.java | 62 +++- .../apache/catalina/storeconfig/StoreRegistry.java | 31 ++-- .../catalina/storeconfig/WatchedResourceSF.java| 13 +- .../catalina/storeconfig/WebResourceRootSF.java| 29 ++-- .../catalina/storeconfig/WrapperLifecycleSF.java | 13 +- .../catalina/storeconfig/WrapperListenerSF.java| 16 +- 38 files changed, 544 insertions(+), 693 deletions(-) diff --git a/java/org/apache/catalina/storeconfig/CatalinaClusterSF.java b/java/org/apache/catalina/storeconfig/CatalinaClusterSF.java index ce1ef29eff..498eba23c3 100644 --- a/java/org/apache/catalina/storeconfig/CatalinaClusterSF.java +++ b/java/org/apache/catalina/storeconfig/CatalinaClusterSF.java @@ -30,18 +30,18 @@ import org.apache.catalina.ha.tcp.SimpleTcpCluster; import org.apache.catalina.tribes.Channel; /** - * Generate Cluster Element with Membership,Sender,Receiver,Deployer and - * ReplicationValve + * Generate Cluster Element with Membership,Sender,Receiver,Deployer and ReplicationValve */ public class CatalinaClusterSF extends StoreFactoryBase { /** * Store the specified Cluster children. + * * {@inheritDoc} */ @Override -public void storeChildren(PrintWriter aWriter, int indent, Object aCluster, -StoreDescription parentDesc) throws Exception { +public void storeChildren(PrintWriter aWriter, int indent, Object aCluster, StoreDescription parentDesc) +throws Exception { if (aCluster instanceof CatalinaCluster) { CatalinaCluster cluster = (CatalinaCluster) aCluster; if (cluster instanceof SimpleTcpCluster) { @@ -69,10 +69,10 @@ public class CatalinaClusterSF extends StoreFactoryBase { if (aCluster instanceof SimpleTcpCluster) { // Store nested elements -LifecycleListener listeners[] = ((SimpleTcpCluster)cluster).findLifecycleListeners(); +LifecycleListener listeners[] = ((SimpleTcpCluster) cluster).findLifecycleListeners(); storeElementArray(aWriter, indent, listeners); // Store nested elements -ClusterListener mlisteners[] = ((SimpleTcpCluster)cluster).findClusterListeners(); +ClusterListener mlisteners[] = ((SimpleTcpCluster) cluster).findClusterListeners(); List clusterListeners = new ArrayList<>(); for (ClusterListener clusterListener : mlisteners) { if (clusterListener != deployer) { diff --git a/java/org/apache/catalina/store
(tomcat) branch main updated (a7f39b0233 -> 942e0148dd)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from a7f39b0233 Improvements to Japanese translations by tak7iji new 16f3011acb Code clean-up - formatting. No functional change. new 7151eaa7ec Code clean-up - formatting. No functional change. new 513da9085a Code clean-up - formatting. No functional change. new 942e0148dd Code clean-up - formatting - no functional change The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/jakarta/servlet/http/HttpServletRequest.java | 3 +- .../apache/catalina/ant/AbstractCatalinaTask.java | 58 +++- .../catalina/ant/BaseRedirectorHelperTask.java | 89 --- java/org/apache/catalina/ant/DeployTask.java | 12 +- java/org/apache/catalina/ant/FindLeaksTask.java| 12 +- .../apache/catalina/ant/JKStatusUpdateTask.java| 96 +--- java/org/apache/catalina/ant/JMXGetTask.java | 25 ++-- java/org/apache/catalina/ant/JMXQueryTask.java | 19 ++- java/org/apache/catalina/ant/JMXSetTask.java | 35 +++-- java/org/apache/catalina/ant/ListTask.java | 4 +- java/org/apache/catalina/ant/ReloadTask.java | 5 +- java/org/apache/catalina/ant/ResourcesTask.java| 10 +- java/org/apache/catalina/ant/ServerinfoTask.java | 3 +- java/org/apache/catalina/ant/SessionsTask.java | 3 +- .../catalina/ant/SslConnectorCiphersTask.java | 4 +- java/org/apache/catalina/ant/StartTask.java| 4 +- java/org/apache/catalina/ant/StopTask.java | 4 +- java/org/apache/catalina/ant/ThreaddumpTask.java | 4 +- java/org/apache/catalina/ant/UndeployTask.java | 4 +- java/org/apache/catalina/ant/ValidatorTask.java| 9 +- java/org/apache/catalina/ant/VminfoTask.java | 4 +- .../catalina/authenticator/AuthenticatorBase.java | 3 +- .../catalina/authenticator/BasicAuthenticator.java | 4 +- .../authenticator/SpnegoAuthenticator.java | 3 +- java/org/apache/catalina/connector/Connector.java | 8 +- .../org/apache/catalina/connector/InputBuffer.java | 4 +- java/org/apache/catalina/connector/Request.java| 6 +- java/org/apache/catalina/connector/Response.java | 1 - .../catalina/core/ApplicationDispatcher.java | 3 +- .../catalina/core/ApplicationFilterChain.java | 3 +- .../catalina/core/ApplicationHttpRequest.java | 1 - .../core/ApplicationSessionCookieConfig.java | 3 +- .../catalina/core/OpenSSLLifecycleListener.java| 41 +++--- .../core/PropertiesRoleMappingListener.java| 9 +- java/org/apache/catalina/core/StandardContext.java | 7 +- .../apache/catalina/core/StandardHostValve.java| 6 +- java/org/apache/catalina/core/StandardServer.java | 11 +- .../catalina/filters/CsrfPreventionFilter.java | 107 ++ java/org/apache/catalina/ha/CatalinaCluster.java | 1 + java/org/apache/catalina/ha/ClusterManager.java| 7 +- java/org/apache/catalina/ha/ClusterMessage.java| 2 + .../apache/catalina/ha/deploy/FarmWarDeployer.java | 4 +- .../ha/session/ClusterSessionListener.java | 1 + .../apache/catalina/ha/session/DeltaSession.java | 2 + .../catalina/ha/session/SessionMessageImpl.java| 1 + .../apache/catalina/ha/tcp/ReplicationValve.java | 10 +- .../apache/catalina/manager/StatusTransformer.java | 70 + java/org/apache/catalina/mbeans/MBeanUtils.java| 5 +- java/org/apache/catalina/realm/CombinedRealm.java | 3 +- java/org/apache/catalina/realm/RealmBase.java | 19 ++- .../apache/catalina/security/SecurityListener.java | 19 +-- .../apache/catalina/session/DataSourceStore.java | 6 +- .../startup/CatalinaBaseConfigurationSource.java | 3 +- java/org/apache/catalina/startup/Tomcat.java | 9 +- .../catalina/storeconfig/CatalinaClusterSF.java| 12 +- .../storeconfig/CertificateStoreAppender.java | 5 +- .../org/apache/catalina/storeconfig/ChannelSF.java | 7 +- .../apache/catalina/storeconfig/ConnectorSF.java | 17 +-- .../storeconfig/ConnectorStoreAppender.java| 84 +-- .../catalina/storeconfig/CredentialHandlerSF.java | 20 +-- .../storeconfig/GlobalNamingResourcesSF.java | 17 +-- .../apache/catalina/storeconfig/IStoreConfig.java | 51 +++ .../apache/catalina/storeconfig/IStoreFactory.java | 11 +- .../apache/catalina/storeconfig/InterceptorSF.java | 22 ++- .../apache/catalina/storeconfig/JarScannerSF.java | 8 +- java/org/apache/catalina/storeconfig/LoaderSF.java | 24 ++- .../org/apache/catalina/storeconfig/ManagerSF.java | 26 ++-- .../catalina/storeconfig/NamingResou
(tomcat) 01/05: Fix BZ 68884 - improve handling of large scale WebSocket disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a37a6d312c4bfa7e46e08266505b3c26413ec2a2 Author: Mark Thomas AuthorDate: Thu May 2 15:13:53 2024 +0100 Fix BZ 68884 - improve handling of large scale WebSocket disconnects --- java/org/apache/tomcat/websocket/Constants.java| 5 + .../tomcat/websocket/WsRemoteEndpointImplBase.java | 23 +- java/org/apache/tomcat/websocket/WsSession.java| 23 +- webapps/docs/changelog.xml | 12 +++ webapps/docs/web-socket-howto.xml | 14 +++-- 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/java/org/apache/tomcat/websocket/Constants.java b/java/org/apache/tomcat/websocket/Constants.java index d03e21abc8..3ea477b26e 100644 --- a/java/org/apache/tomcat/websocket/Constants.java +++ b/java/org/apache/tomcat/websocket/Constants.java @@ -113,6 +113,11 @@ public class Constants { // Default is 30 seconds - setting is in milliseconds public static final long DEFAULT_SESSION_CLOSE_TIMEOUT = TimeUnit.SECONDS.toMillis(30); +// Configuration for session close timeout +public static final String ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT_PROPERTY = "org.apache.tomcat.websocket.ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT"; +// Default is 50 milliseconds - setting is in milliseconds +public static final long DEFAULT_ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT = 50; + // Configuration for read idle timeout on WebSocket session public static final String READ_IDLE_TIMEOUT_MS = "org.apache.tomcat.websocket.READ_IDLE_TIMEOUT_MS"; diff --git a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java index 9008db20d6..f366ae20c5 100644 --- a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java +++ b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java @@ -236,7 +236,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { void sendMessageBlock(CharBuffer part, boolean last) throws IOException { -long timeoutExpiry = getTimeoutExpiry(); +long timeout = getBlockingSendTimeout(); boolean isDone = false; while (!isDone) { encoderBuffer.clear(); @@ -246,22 +246,27 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } isDone = !cr.isOverflow(); encoderBuffer.flip(); -sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeoutExpiry); +sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeout); } stateMachine.complete(last); } void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last) throws IOException { -sendMessageBlock(opCode, payload, last, getTimeoutExpiry()); +sendMessageBlock(opCode, payload, last, getBlockingSendTimeout()); } -private long getTimeoutExpiry() { -// Get the timeout before we send the message. The message may -// trigger a session close and depending on timing the client -// session may close before we can read the timeout. -long timeout = getBlockingSendTimeout(); +void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeout) throws IOException { +/* + * Get the timeout before we send the message. The message may trigger a session close and depending on timing + * the client session may close before we can read the timeout. + */ +sendMessageBlockInternal(opCode, payload, last, getTimeoutExpiry(timeout)); +} + + +private long getTimeoutExpiry(long timeout) { if (timeout < 0) { return Long.MAX_VALUE; } else { @@ -270,7 +275,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } -private void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) +private void sendMessageBlockInternal(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) throws IOException { wsSession.updateLastActiveWrite(); diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index e71b719e27..8892e7d960 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -771,6 +771,22 @@ public class WsSession implements Session { } +/* + * Returns the session close timeout in milliseconds + */ +private long getAbnormalSessionCloseSendTimeout() { +long result = 0; +Object obj = userProperties.get(Constants.ABNORMAL_SESSION_CLOSE_S
(tomcat) branch 9.0.x updated (5cb9912e1a -> 258cf33de7)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 5cb9912e1a Javadoc cleanup for Coyote new a37a6d312c Fix BZ 68884 - improve handling of large scale WebSocket disconnects new f2274d369d Fix ordering new d3ec5e7a65 Fix encoding new 0fca3b1ffe Remove unused entries new 258cf33de7 Improvements to Japanese translations by tak7iji. The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../catalina/core/LocalStrings_fr.properties | 1 - .../catalina/core/LocalStrings_ja.properties | 1 - .../catalina/security/LocalStrings.properties | 6 +++--- .../catalina/security/LocalStrings_ja.properties | 3 +++ .../apache/coyote/http2/LocalStrings_ja.properties | 2 +- .../util/http/parser/LocalStrings_fr.properties| 2 +- .../util/http/parser/LocalStrings_ja.properties| 2 +- .../tomcat/util/net/LocalStrings_fr.properties | 1 - .../tomcat/util/net/LocalStrings_ja.properties | 1 - java/org/apache/tomcat/websocket/Constants.java| 5 + .../tomcat/websocket/WsRemoteEndpointImplBase.java | 23 +- java/org/apache/tomcat/websocket/WsSession.java| 23 +- webapps/docs/changelog.xml | 15 ++ webapps/docs/web-socket-howto.xml | 14 +++-- 14 files changed, 77 insertions(+), 22 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 05/05: Improvements to Japanese translations by tak7iji.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 258cf33de76792a179741d3f2e0edbafc2ee6ee4 Author: Mark Thomas AuthorDate: Thu May 2 18:49:01 2024 +0100 Improvements to Japanese translations by tak7iji. --- java/org/apache/catalina/security/LocalStrings_ja.properties | 3 +++ java/org/apache/coyote/http2/LocalStrings_ja.properties| 2 +- java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties | 2 +- webapps/docs/changelog.xml | 3 +++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/security/LocalStrings_ja.properties b/java/org/apache/catalina/security/LocalStrings_ja.properties index 33ff55df49..2fc4b12d41 100644 --- a/java/org/apache/catalina/security/LocalStrings_ja.properties +++ b/java/org/apache/catalina/security/LocalStrings_ja.properties @@ -13,6 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=設定された buildDateWarningAgeDays の値 [{0}] を読み取ることができません。デフォルトの [{1}] 日を使用します。 +SecurityListener.buildDateIsOld=このバージョンの Tomcat は {0} 日以上前にビルドされました。 現在のバージョンにアップグレードすることを検討してください。 +SecurityListener.buildDateUnreadable=サーバーのビルド日 [{0}] は ISO 8601 形式の日付として読み取ることができません。 SecurityListener.checkUmaskFail=[{0}] のumask設定で開始しようとしました。 少なくとも [{1}] と同じようにumaskを指定しないでTomcatを実行すると、ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlで構成されています)によってブロックされます SecurityListener.checkUmaskNone=システムプロパティ [{0}] にumask設定が見つかりませんでした。しかし、Tomcatはumaskをサポートするプラットフォームで動作しているようです。システムプロパティは通常、CATALINA_HOME/bin/catalina.shに設定されます。ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlに設定されています)では、少なくとも [{1}] と同じくらい拘束されたumaskが必要です。 SecurityListener.checkUmaskParseFail=値[{0}]を有効なumaskとして解析できませんでした。 diff --git a/java/org/apache/coyote/http2/LocalStrings_ja.properties b/java/org/apache/coyote/http2/LocalStrings_ja.properties index fa98e53e8d..7a383a9e35 100644 --- a/java/org/apache/coyote/http2/LocalStrings_ja.properties +++ b/java/org/apache/coyote/http2/LocalStrings_ja.properties @@ -130,7 +130,7 @@ upgradeHandler.allocate.left=コネクション [{0}]、ストリーム [{1}]、 upgradeHandler.connectionError=接続エラー upgradeHandler.enableRfc7450Priorities=接続 [{0}] は、RFC 7450 優先順位が初期接続設定フレームで無効にされた後に有効にならない場合があります (RFC 9218 を参照) upgradeHandler.fallToDebug=\n\ -\ 注: HTTP/2 ストリームのエラーがさらに発生すると、DEBUG レベルでログに記録されます。 +\ 注: 以降のHTTP/2 ストリームエラーの発生はDEBUGレベルでログに出力されます。 upgradeHandler.goaway.debug=コネクション [{0}]、Goaway、最終ストリーム [{1}]、エラーコード [{2}]、デバッグデータ [{3}] upgradeHandler.init=コネクション[{0}]、状態[{1}] upgradeHandler.invalidPreface=コネクション[{0}]、無効なConnection Preface diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties index abde689744..a95ae9dc20 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties @@ -45,7 +45,7 @@ http.tooManyColons=IPv6 アドレスでは文字 : を 2 つ以上連続する http.tooManyDoubleColons=IPv6アドレスは単一の '::'シーケンスのみを含むことができます。 http.tooManyHextets=IPv6 アドレスは [{0}] ヘクステットで構成されていますが、正常な IPv6 アドレスなら 8 ヘクステット以上になりません。 -httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 7230 に準拠していません。リクエストは拒否されました。 +httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 9112 に準拠していません。リクエストは拒否されました。 sf.bareitem.invalidCharacter=ベアアイテムの開始を解析中に無効な文字 [{0}] が見つかりました sf.base64.invalidCharacter=文字 [{0}] は base64 シーケンス内では無効です diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 132a9a517c..4c3feb27dc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -251,6 +251,9 @@ Update the internal fork of Apache Commons DBCP to 2.12.0. (markt) + +Improvements to Japanese translations by tak7iji. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 04/05: Remove unused entries
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 0fca3b1ffe52719e95493d73d896f9efacaae03c Author: Mark Thomas AuthorDate: Thu May 2 18:47:30 2024 +0100 Remove unused entries --- java/org/apache/catalina/core/LocalStrings_fr.properties | 1 - java/org/apache/catalina/core/LocalStrings_ja.properties | 1 - java/org/apache/tomcat/util/net/LocalStrings_fr.properties | 1 - java/org/apache/tomcat/util/net/LocalStrings_ja.properties | 1 - 4 files changed, 4 deletions(-) diff --git a/java/org/apache/catalina/core/LocalStrings_fr.properties b/java/org/apache/catalina/core/LocalStrings_fr.properties index 22b2082f46..1220749471 100644 --- a/java/org/apache/catalina/core/LocalStrings_fr.properties +++ b/java/org/apache/catalina/core/LocalStrings_fr.properties @@ -42,7 +42,6 @@ applicationContext.setSessionTracking.iae.ssl=Les modes de suivi de session pour applicationContext.setSessionTracking.ise=Les modes de suivi de session ("session tracking") du contexte [{0}] ne peuvent être définis pendant que le contexte est en cours d''exécution applicationDispatcher.allocateException=Exception d''allocation pour la servlet [{0}] -applicationDispatcher.customResponse=La réponse de classe [{0}] n''a pas permis d''obtenir la réponse de Catalina et sera fermée immédiatement après le forward applicationDispatcher.deallocateException=Exception de désallocation pour la servlet [{0}] applicationDispatcher.forward.ise=Impossible d'utiliser faire-suivre (forward) après que la réponse ait été envoyée applicationDispatcher.isUnavailable=La servlet [{0}] est actuellement indisponible diff --git a/java/org/apache/catalina/core/LocalStrings_ja.properties b/java/org/apache/catalina/core/LocalStrings_ja.properties index c966e1f43f..f4037b7734 100644 --- a/java/org/apache/catalina/core/LocalStrings_ja.properties +++ b/java/org/apache/catalina/core/LocalStrings_ja.properties @@ -42,7 +42,6 @@ applicationContext.setSessionTracking.iae.ssl=コンテキスト [{0}] に対し applicationContext.setSessionTracking.ise=コンテキスト [{0}] は実行中のためセッション追跡モードを構成できません。 applicationDispatcher.allocateException=サーブレット [{0}] に例外を割り当てます -applicationDispatcher.customResponse=レスポンスクラス [{0}] は Catalina レスポンスクラスにアンラップできませんでした。転送後すぐに閉じられます applicationDispatcher.deallocateException=サーブレット [{0}] の例外を解除します applicationDispatcher.forward.ise=レスポンスをコミットした後でフォワードできません applicationDispatcher.isUnavailable=サーブレット [{0}] は現在利用できません diff --git a/java/org/apache/tomcat/util/net/LocalStrings_fr.properties b/java/org/apache/tomcat/util/net/LocalStrings_fr.properties index cc95b59d83..b88a44ac1e 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings_fr.properties @@ -82,7 +82,6 @@ endpoint.err.close=Une exception s'est produite en essayant de fermer le socket endpoint.err.duplicateAccept=Le socket a été accpeté deux fois. Ceci est un bug connu du kernel Linux. La connection originelle a été traitée normalement et le doublon a été ignoré. Le client ne devrait pas être affecté. Mettre à jour l'OS vers une version qui utilise un kernel 5.10 ou plus récent devrait corriger le problème. endpoint.err.handshake=Echec de négociation endpoint.err.unexpected=Erreur inattendue lors du traitement du socket -endpoint.errorCreatingSSLContext=Erreur lors de la création du SSLContext endpoint.executor.fail=L''exécuteur a rejeté le traitement du socket [{0}] endpoint.getAttribute=[{0}] est [{1}] endpoint.init.bind=L''association du socket a échoué : [{0}] [{1}] diff --git a/java/org/apache/tomcat/util/net/LocalStrings_ja.properties b/java/org/apache/tomcat/util/net/LocalStrings_ja.properties index d8b58a1e55..7b155e09b4 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings_ja.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings_ja.properties @@ -82,7 +82,6 @@ endpoint.err.close=ソケットをクローズしようとした際に例外が endpoint.err.duplicateAccept=重複したソケット受け付けが検出されました。 これはLinuxカーネルの既知のバグです。 最初のコネクションは正常に処理され、重複受け付けは無視されました。 クライアントは影響を受けないはずです。Linuxカーネルをバージョン5.10以降に更新すると、重複受け付けのバグが修正されます。 endpoint.err.handshake=ハンドシェイク失敗 endpoint.err.unexpected=ソケット処理中の予期せぬエラー -endpoint.errorCreatingSSLContext=SSLContextの作成中にエラーが発生しました endpoint.executor.fail=エグゼキュータは処理するソケット [{0}] を拒否しました endpoint.getAttribute=[{0}] は [{1}] です endpoint.init.bind=ソケットバインドに失敗しました:[{0}] [{1}] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/05: Fix encoding
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit d3ec5e7a65711c3b3bfa5c13731392dd5f5d4eb7 Author: Mark Thomas AuthorDate: Thu May 2 18:46:56 2024 +0100 Fix encoding --- java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties index a1be4a83bd..a4e90bd377 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties @@ -45,7 +45,7 @@ http.tooManyColons=Une adresse IPv6 ne peut pas contenir plus de deux caractère http.tooManyDoubleColons=Une adresse IPv6 ne peut contenir qu'une seule séquence "::" http.tooManyHextets=L''adresse IPv6 contient [{0}] groupes de 4 octets mais une adresse IPv6 valide ne doit pas en avoir plus de 8 -httpHeaderParser.invalidHeader=La ligne d''en-t�te HTTP [{0}] ne respecte pas la RFC 7230. La requ�te a �t� rejet�e. +httpHeaderParser.invalidHeader=La ligne d''en-tête HTTP [{0}] ne respecte pas la RFC 9112. La requête a été rejetée. sf.bareitem.invalidCharacter=Le caractère [{0}] invalide a été rencontré en début d''un objet sf.base64.invalidCharacter=Le caractère [{0}] est invalide dans une séquence base64 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/05: Fix ordering
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit f2274d369d46bdda03501e0893b0522b1a0035da Author: Mark Thomas AuthorDate: Thu May 2 18:44:50 2024 +0100 Fix ordering --- java/org/apache/catalina/security/LocalStrings.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/org/apache/catalina/security/LocalStrings.properties b/java/org/apache/catalina/security/LocalStrings.properties index e356c44a27..f16560004f 100644 --- a/java/org/apache/catalina/security/LocalStrings.properties +++ b/java/org/apache/catalina/security/LocalStrings.properties @@ -13,14 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. +SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. +SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. SecurityListener.checkUmaskFail=Start attempted with umask setting of [{0}]. Running Tomcat without a umask at least as restrictive as [{1}] has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) SecurityListener.checkUmaskNone=No umask setting was found in system property [{0}]. However, it appears Tomcat is running on a platform that supports umask. The system property is typically set in CATALINA_HOME/bin/catalina.sh. The Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) expects a umask at least as restrictive as [{1}] SecurityListener.checkUmaskParseFail=Failed to parse value [{0}] as a valid umask. SecurityListener.checkUmaskSkip=Unable to determine umask. It appears Tomcat is running on Windows so skip the umask check. SecurityListener.checkUserWarning=Start attempted while running as user [{0}]. Running Tomcat as this user has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) -SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. -SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. -SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. SecurityUtil.doAsPrivilege=An exception occurs when running the PrivilegedExceptionAction block. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 05/05: Improvements to Japanese translations by tak7iji. (markt)
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit fea6de2b7fdfdeec33073f7035ed3c341e5f70f6 Author: Mark Thomas AuthorDate: Thu May 2 18:36:48 2024 +0100 Improvements to Japanese translations by tak7iji. (markt) --- java/org/apache/catalina/core/LocalStrings_ja.properties | 5 + java/org/apache/catalina/security/LocalStrings_ja.properties | 3 +++ java/org/apache/coyote/http2/LocalStrings_ja.properties | 2 +- java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties | 2 +- .../apache/tomcat/util/net/openssl/panama/LocalStrings_ja.properties | 2 ++ webapps/docs/changelog.xml | 3 +++ 6 files changed, 15 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/core/LocalStrings_ja.properties b/java/org/apache/catalina/core/LocalStrings_ja.properties index 714d5f408c..bc495f6687 100644 --- a/java/org/apache/catalina/core/LocalStrings_ja.properties +++ b/java/org/apache/catalina/core/LocalStrings_ja.properties @@ -173,6 +173,11 @@ naming.wsdlFailed=wsdl ファイル [{0}] が見つかりませんでした。 noPluggabilityServletContext.notAllowed=Servlet 3.0仕様の4.4節では、web.xmlに定義されていないServletContextListener、web-fragment.xmlファイル、@WebListenerアノテーションからこのメソッドを呼び出すことはできません。 +openssllistener.destroy=OpenSSL のシャットダウンに失敗しました +openssllistener.initializeFIPSFailed=FIPS モードに入るのに失敗しました +openssllistener.java22=Tomcat OpenSSL サポートには、Java 22 以降で利用可能な FFM API が必要です。代わりに tomcat ネイティブを使用する必要があります +openssllistener.sslInit=SSLEngineの初期化に失敗しました。 + propertiesRoleMappingListener.linkedRole=アプリケーション ロール [{0}] を技術ロール [{1}] にリンクしました propertiesRoleMappingListener.linkedRoleCount=アプリケーション ロール [{0}] を技術ロールにリンクしました propertiesRoleMappingListener.roleMappingFileEmpty=ロール マッピング ファイルを空にすることはできません diff --git a/java/org/apache/catalina/security/LocalStrings_ja.properties b/java/org/apache/catalina/security/LocalStrings_ja.properties index 33ff55df49..2fc4b12d41 100644 --- a/java/org/apache/catalina/security/LocalStrings_ja.properties +++ b/java/org/apache/catalina/security/LocalStrings_ja.properties @@ -13,6 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=設定された buildDateWarningAgeDays の値 [{0}] を読み取ることができません。デフォルトの [{1}] 日を使用します。 +SecurityListener.buildDateIsOld=このバージョンの Tomcat は {0} 日以上前にビルドされました。 現在のバージョンにアップグレードすることを検討してください。 +SecurityListener.buildDateUnreadable=サーバーのビルド日 [{0}] は ISO 8601 形式の日付として読み取ることができません。 SecurityListener.checkUmaskFail=[{0}] のumask設定で開始しようとしました。 少なくとも [{1}] と同じようにumaskを指定しないでTomcatを実行すると、ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlで構成されています)によってブロックされます SecurityListener.checkUmaskNone=システムプロパティ [{0}] にumask設定が見つかりませんでした。しかし、Tomcatはumaskをサポートするプラットフォームで動作しているようです。システムプロパティは通常、CATALINA_HOME/bin/catalina.shに設定されます。ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlに設定されています)では、少なくとも [{1}] と同じくらい拘束されたumaskが必要です。 SecurityListener.checkUmaskParseFail=値[{0}]を有効なumaskとして解析できませんでした。 diff --git a/java/org/apache/coyote/http2/LocalStrings_ja.properties b/java/org/apache/coyote/http2/LocalStrings_ja.properties index fa98e53e8d..7a383a9e35 100644 --- a/java/org/apache/coyote/http2/LocalStrings_ja.properties +++ b/java/org/apache/coyote/http2/LocalStrings_ja.properties @@ -130,7 +130,7 @@ upgradeHandler.allocate.left=コネクション [{0}]、ストリーム [{1}]、 upgradeHandler.connectionError=接続エラー upgradeHandler.enableRfc7450Priorities=接続 [{0}] は、RFC 7450 優先順位が初期接続設定フレームで無効にされた後に有効にならない場合があります (RFC 9218 を参照) upgradeHandler.fallToDebug=\n\ -\ 注: HTTP/2 ストリームのエラーがさらに発生すると、DEBUG レベルでログに記録されます。 +\ 注: 以降のHTTP/2 ストリームエラーの発生はDEBUGレベルでログに出力されます。 upgradeHandler.goaway.debug=コネクション [{0}]、Goaway、最終ストリーム [{1}]、エラーコード [{2}]、デバッグデータ [{3}] upgradeHandler.init=コネクション[{0}]、状態[{1}] upgradeHandler.invalidPreface=コネクション[{0}]、無効なConnection Preface diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties index abde689744..a95ae9dc20 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties @@ -45,7 +45,7 @@ http.tooManyColons=IPv6 アドレスでは文字 : を 2 つ以上連続する http.tooManyDoubleColons=IPv6アドレスは単一の '::'シーケンスのみを含むことができます。 http.tooManyHextets=IPv6 アドレスは [{0}] ヘクステットで構成されていますが、正常な IPv6 アドレスなら 8 ヘクステット以上になりません。 -httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 7230 に準拠していません。リクエストは拒否されました。 +httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 9112 に準拠していません。リクエストは拒否されました。 sf.bareitem.invalidCharacter=ベアアイテムの開始を解析中に無効な文字 [{0}] が見つかりました sf.base64.invalidCharacter=文字 [{0}] は base64 シーケンス内では無効です diff --git a/java/org/apache/tomcat/util/net/openssl/panama
(tomcat) 02/05: Fix encoding issues
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 0bfe5212be0f3d8e25048f91f9f4e759ca3cdd92 Author: Mark Thomas AuthorDate: Thu May 2 18:33:52 2024 +0100 Fix encoding issues --- java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties index a1be4a83bd..a4e90bd377 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties @@ -45,7 +45,7 @@ http.tooManyColons=Une adresse IPv6 ne peut pas contenir plus de deux caractère http.tooManyDoubleColons=Une adresse IPv6 ne peut contenir qu'une seule séquence "::" http.tooManyHextets=L''adresse IPv6 contient [{0}] groupes de 4 octets mais une adresse IPv6 valide ne doit pas en avoir plus de 8 -httpHeaderParser.invalidHeader=La ligne d''en-t�te HTTP [{0}] ne respecte pas la RFC 7230. La requ�te a �t� rejet�e. +httpHeaderParser.invalidHeader=La ligne d''en-tête HTTP [{0}] ne respecte pas la RFC 9112. La requête a été rejetée. sf.bareitem.invalidCharacter=Le caractère [{0}] invalide a été rencontré en début d''un objet sf.base64.invalidCharacter=Le caractère [{0}] est invalide dans une séquence base64 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 04/05: Improvements to French translations. (remm)
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 77471b52e0caea003fc5dd717ca53d5a85ad5ade Author: Mark Thomas AuthorDate: Thu May 2 18:35:50 2024 +0100 Improvements to French translations. (remm) --- java/org/apache/catalina/core/LocalStrings_fr.properties | 5 + .../apache/tomcat/util/net/openssl/panama/LocalStrings_fr.properties | 2 ++ webapps/docs/changelog.xml | 3 +++ 3 files changed, 10 insertions(+) diff --git a/java/org/apache/catalina/core/LocalStrings_fr.properties b/java/org/apache/catalina/core/LocalStrings_fr.properties index 3a88c9aab9..804bc45e82 100644 --- a/java/org/apache/catalina/core/LocalStrings_fr.properties +++ b/java/org/apache/catalina/core/LocalStrings_fr.properties @@ -173,6 +173,11 @@ naming.wsdlFailed=fichier wsdl [{0}] non trouvé noPluggabilityServletContext.notAllowed=La section 4.4 de la spécification Servlet 3.0 ne permet pas à cette méthode d'être appelée à partir d'un ServletContextListener qui n'a pas été déclaré dans web.xml, un web-fragment.xml, ou annoté avec @WebListener +openssllistener.destroy=Erreur d'arrêt d'OpenSSL +openssllistener.initializeFIPSFailed=Echec d'entrée en mode FIPS +openssllistener.java22=Le support d'OpenSSL dans Tomcat nécessite l'API FFM qui est disponible dans Java 22 ou plus récent, Apache Tomcat Native devrait être utilisé à la place +openssllistener.sslInit=Erreur d'initialisation d'OpenSSL + propertiesRoleMappingListener.linkedRole=Le rôle de l''application [{0}] a été associé avec succès au rôle [{1}] propertiesRoleMappingListener.linkedRoleCount=[{0}] rôles de l''application ont été associés à des rôles propertiesRoleMappingListener.roleMappingFileEmpty=Le fichier d'association de rôles ne peut être vide diff --git a/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings_fr.properties b/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings_fr.properties index 3d40e40d20..8025c3bb57 100644 --- a/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings_fr.properties @@ -33,6 +33,7 @@ engine.nullName=La valeur du nom est null engine.nullValue=La valeur est null engine.ocspParseError=Erreur de traitement des URLs OCSP engine.ocspRequestError=Erreur de traitement de la requête OCSP pour l''URL [{0}] +engine.ocspResponse=La réponse OCSP pour l''URL [{0}] était [{1}] engine.openSSLError=Erreur OpenSSL : [{0}] message : [{1}] engine.oversizedPacket=Le paquet crypté est trop gros engine.unsupportedCipher=Suite de chiffres non supportée : [{0}] [{1}] @@ -57,6 +58,7 @@ openssl.errorLoadingPassword=Erreur lors du chargment du fichier mot de passe: [ openssl.errorLoadingPrivateKey=Erreur lors du chargment de la clé privée: [{0}] openssl.errorPrivateKeyCheck=La clé privée ne correspond pas à la clé publique du certificat: [{0}] openssl.errorSSLCtxInit=Erreur d'initialisation du contexte SSL +openssl.invalidSslProtocol=La valeur invalide [{0}] a été fournie pour l''attribut SSLProtocol openssl.keyManagerMissing=Aucun gestionnaire de clés trouvé openssl.makeConf=Création du contexte de OpenSSLConf openssl.noCACerts=Aucun certificat CA n'a été configuré diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index b5d35bd1e3..4b55664d87 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -242,6 +242,9 @@ Update the internal fork of Apache Commons DBCP to 2.12.0. (markt) + +Improvements to French translations. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/05: Remove unused translations
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 3ffeb1ccf7e763e1ed3b9a528db33d16da187d1a Author: Mark Thomas AuthorDate: Thu May 2 18:35:07 2024 +0100 Remove unused translations --- java/org/apache/tomcat/util/net/LocalStrings_fr.properties | 1 - java/org/apache/tomcat/util/net/LocalStrings_ja.properties | 1 - 2 files changed, 2 deletions(-) diff --git a/java/org/apache/tomcat/util/net/LocalStrings_fr.properties b/java/org/apache/tomcat/util/net/LocalStrings_fr.properties index 037cdb5d6d..e357d83ee8 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings_fr.properties @@ -68,7 +68,6 @@ endpoint.err.close=Une exception s'est produite en essayant de fermer le socket endpoint.err.duplicateAccept=Le socket a été accpeté deux fois. Ceci est un bug connu du kernel Linux. La connection originelle a été traitée normalement et le doublon a été ignoré. Le client ne devrait pas être affecté. Mettre à jour l'OS vers une version qui utilise un kernel 5.10 ou plus récent devrait corriger le problème. endpoint.err.handshake=Echec de négociation endpoint.err.unexpected=Erreur inattendue lors du traitement du socket -endpoint.errorCreatingSSLContext=Erreur lors de la création du SSLContext endpoint.executor.fail=L''exécuteur a rejeté le traitement du socket [{0}] endpoint.getAttribute=[{0}] est [{1}] endpoint.init.bind=L''association du socket a échoué : [{0}] [{1}] diff --git a/java/org/apache/tomcat/util/net/LocalStrings_ja.properties b/java/org/apache/tomcat/util/net/LocalStrings_ja.properties index 5d6c9592a5..b629f867de 100644 --- a/java/org/apache/tomcat/util/net/LocalStrings_ja.properties +++ b/java/org/apache/tomcat/util/net/LocalStrings_ja.properties @@ -68,7 +68,6 @@ endpoint.err.close=ソケットをクローズしようとした際に例外が endpoint.err.duplicateAccept=重複したソケット受け付けが検出されました。 これはLinuxカーネルの既知のバグです。 最初のコネクションは正常に処理され、重複受け付けは無視されました。 クライアントは影響を受けないはずです。Linuxカーネルをバージョン5.10以降に更新すると、重複受け付けのバグが修正されます。 endpoint.err.handshake=ハンドシェイク失敗 endpoint.err.unexpected=ソケット処理中の予期せぬエラー -endpoint.errorCreatingSSLContext=SSLContextの作成中にエラーが発生しました endpoint.executor.fail=エグゼキュータは処理するソケット [{0}] を拒否しました endpoint.getAttribute=[{0}] は [{1}] です endpoint.init.bind=ソケットバインドに失敗しました:[{0}] [{1}] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated (81a9391c33 -> fea6de2b7f)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 81a9391c33 Fix BZ 68884 - improve handling of large scale WebSocket disconnects new 804b6a7e19 Fix ordering new 0bfe5212be Fix encoding issues new 3ffeb1ccf7 Remove unused translations new 77471b52e0 Improvements to French translations. (remm) new fea6de2b7f Improvements to Japanese translations by tak7iji. (markt) The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/catalina/core/LocalStrings_fr.properties| 5 + java/org/apache/catalina/core/LocalStrings_ja.properties| 5 + java/org/apache/catalina/security/LocalStrings.properties | 6 +++--- java/org/apache/catalina/security/LocalStrings_ja.properties| 3 +++ java/org/apache/coyote/http2/LocalStrings_ja.properties | 2 +- java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties | 2 +- java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties | 2 +- java/org/apache/tomcat/util/net/LocalStrings_fr.properties | 1 - java/org/apache/tomcat/util/net/LocalStrings_ja.properties | 1 - .../apache/tomcat/util/net/openssl/panama/LocalStrings.properties | 5 ++--- .../tomcat/util/net/openssl/panama/LocalStrings_fr.properties | 2 ++ .../tomcat/util/net/openssl/panama/LocalStrings_ja.properties | 2 ++ webapps/docs/changelog.xml | 6 ++ 13 files changed, 31 insertions(+), 11 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/05: Fix ordering
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 804b6a7e196136b43cadbf7a451f49f48a08d931 Author: Mark Thomas AuthorDate: Thu May 2 18:33:30 2024 +0100 Fix ordering --- java/org/apache/catalina/security/LocalStrings.properties | 6 +++--- .../apache/tomcat/util/net/openssl/panama/LocalStrings.properties | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/java/org/apache/catalina/security/LocalStrings.properties b/java/org/apache/catalina/security/LocalStrings.properties index e356c44a27..f16560004f 100644 --- a/java/org/apache/catalina/security/LocalStrings.properties +++ b/java/org/apache/catalina/security/LocalStrings.properties @@ -13,14 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. +SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. +SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. SecurityListener.checkUmaskFail=Start attempted with umask setting of [{0}]. Running Tomcat without a umask at least as restrictive as [{1}] has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) SecurityListener.checkUmaskNone=No umask setting was found in system property [{0}]. However, it appears Tomcat is running on a platform that supports umask. The system property is typically set in CATALINA_HOME/bin/catalina.sh. The Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) expects a umask at least as restrictive as [{1}] SecurityListener.checkUmaskParseFail=Failed to parse value [{0}] as a valid umask. SecurityListener.checkUmaskSkip=Unable to determine umask. It appears Tomcat is running on Windows so skip the umask check. SecurityListener.checkUserWarning=Start attempted while running as user [{0}]. Running Tomcat as this user has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) -SecurityListener.buildDateAgeUnreadable=Unable to read configured buildDateWarningAgeDays [{0}], using default of [{1}] days. -SecurityListener.buildDateUnreadable=Server build date [{0}] is unreadable as an ISO-8601 date. -SecurityListener.buildDateIsOld=This version of Tomcat was built more than {0} days ago. You should consider upgrading to the current version. SecurityUtil.doAsPrivilege=An exception occurs when running the PrivilegedExceptionAction block. diff --git a/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings.properties b/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings.properties index 5b4ef5c6ee..1a2f3d83fa 100644 --- a/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings.properties +++ b/java/org/apache/tomcat/util/net/openssl/panama/LocalStrings.properties @@ -52,10 +52,10 @@ openssl.errMakeConf=Could not create OpenSSLConf context [{0}] openssl.errorAddingCertificate=Error adding certificate to chain: [{0}] openssl.errorConfiguringLocations=Error configuring CA certificate locations: [{0}] openssl.errorLoadingCertificate=Error loading certificate: [{0}] +openssl.errorLoadingCertificateRevocationListWithError=Error loading certificate revocation [{0}] with error [{1}] openssl.errorLoadingCertificateWithError=Error loading certificate [{0}] with error [{1}] openssl.errorLoadingPassword=Error loading password file: [{0}] openssl.errorLoadingPrivateKey=Error loading private key: [{0}] -openssl.errorLoadingCertificateRevocationListWithError=Error loading certificate revocation [{0}] with error [{1}] openssl.errorPrivateKeyCheck=Private key does not match the certificate public key: [{0}] openssl.errorSSLCtxInit=Error initializing SSL context openssl.invalidSslProtocol=An invalid value [{0}] was provided for the SSLProtocol attribute @@ -82,8 +82,6 @@ opensslconf.noCommandName=OpenSSLConf no command name - will be ignored (command opensslconf.resultCommand=OpenSSLConf command (name [{0}], value [{1}]) returned [{2}] opensslconf.unknownCommandType=SSL_CONF command [{0}] type unknown -sessionContext.nullTicketKeys=Null keys - openssllibrary.ciphersFailure=Failed getting cipher list openssllibrary.currentFIPSMode=Current FIPS mode: [{0}] openssllibrary.engineError=Error creating engine @@ -99,3 +97,4 @@ openssllibrary.tooLateForSSLEngine=Cannot setSSLEngine: SSL has already been ini openssllibrary.tooLateForSSLRandomSeed=Cannot setSSLRandomSeed: SSL has already been initialized openssllibrary.wrongFIPSMode
(tomcat) branch 10.1.x updated: Fix BZ 68884 - improve handling of large scale WebSocket disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 81a9391c33 Fix BZ 68884 - improve handling of large scale WebSocket disconnects 81a9391c33 is described below commit 81a9391c33a241743c2632f0ded056dfff6d2cdf Author: Mark Thomas AuthorDate: Thu May 2 15:13:53 2024 +0100 Fix BZ 68884 - improve handling of large scale WebSocket disconnects --- java/org/apache/tomcat/websocket/Constants.java| 5 + .../tomcat/websocket/WsRemoteEndpointImplBase.java | 23 +- java/org/apache/tomcat/websocket/WsSession.java| 23 +- webapps/docs/changelog.xml | 12 +++ webapps/docs/web-socket-howto.xml | 14 +++-- 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/java/org/apache/tomcat/websocket/Constants.java b/java/org/apache/tomcat/websocket/Constants.java index 16f3f8184f..e394578c51 100644 --- a/java/org/apache/tomcat/websocket/Constants.java +++ b/java/org/apache/tomcat/websocket/Constants.java @@ -123,6 +123,11 @@ public class Constants { // Default is 30 seconds - setting is in milliseconds public static final long DEFAULT_SESSION_CLOSE_TIMEOUT = TimeUnit.SECONDS.toMillis(30); +// Configuration for session close timeout +public static final String ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT_PROPERTY = "org.apache.tomcat.websocket.ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT"; +// Default is 50 milliseconds - setting is in milliseconds +public static final long DEFAULT_ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT = 50; + // Configuration for read idle timeout on WebSocket session public static final String READ_IDLE_TIMEOUT_MS = "org.apache.tomcat.websocket.READ_IDLE_TIMEOUT_MS"; diff --git a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java index 7c28b06901..c36b3051a5 100644 --- a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java +++ b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java @@ -237,7 +237,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { void sendMessageBlock(CharBuffer part, boolean last) throws IOException { -long timeoutExpiry = getTimeoutExpiry(); +long timeout = getBlockingSendTimeout(); boolean isDone = false; while (!isDone) { encoderBuffer.clear(); @@ -247,22 +247,27 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } isDone = !cr.isOverflow(); encoderBuffer.flip(); -sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeoutExpiry); +sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeout); } stateMachine.complete(last); } void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last) throws IOException { -sendMessageBlock(opCode, payload, last, getTimeoutExpiry()); +sendMessageBlock(opCode, payload, last, getBlockingSendTimeout()); } -private long getTimeoutExpiry() { -// Get the timeout before we send the message. The message may -// trigger a session close and depending on timing the client -// session may close before we can read the timeout. -long timeout = getBlockingSendTimeout(); +void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeout) throws IOException { +/* + * Get the timeout before we send the message. The message may trigger a session close and depending on timing + * the client session may close before we can read the timeout. + */ +sendMessageBlockInternal(opCode, payload, last, getTimeoutExpiry(timeout)); +} + + +private long getTimeoutExpiry(long timeout) { if (timeout < 0) { return Long.MAX_VALUE; } else { @@ -271,7 +276,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } -private void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) +private void sendMessageBlockInternal(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) throws IOException { wsSession.updateLastActiveWrite(); diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index 0c1b2d18dd..7b66df3374 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -688,6 +688,22 @@ public class WsSession implements Session { } +/* + * Returns th
(tomcat) 04/04: Improvements to Japanese translations by tak7iji
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a7f39b02334a4ca81a61c6670abcebe145458b7c Author: Mark Thomas AuthorDate: Thu May 2 15:34:12 2024 +0100 Improvements to Japanese translations by tak7iji --- java/org/apache/catalina/security/LocalStrings_ja.properties | 3 +++ java/org/apache/coyote/http2/LocalStrings_ja.properties | 2 +- webapps/docs/changelog.xml | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/java/org/apache/catalina/security/LocalStrings_ja.properties b/java/org/apache/catalina/security/LocalStrings_ja.properties index 03a34ffc59..a511ff1a0d 100644 --- a/java/org/apache/catalina/security/LocalStrings_ja.properties +++ b/java/org/apache/catalina/security/LocalStrings_ja.properties @@ -13,6 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +SecurityListener.buildDateAgeUnreadable=設定された buildDateWarningAgeDays の値 [{0}] を読み取ることができません。デフォルトの [{1}] 日を使用します。 +SecurityListener.buildDateIsOld=このバージョンの Tomcat は {0} 日以上前にビルドされました。 現在のバージョンにアップグレードすることを検討してください。 +SecurityListener.buildDateUnreadable=サーバーのビルド日 [{0}] は ISO 8601 形式の日付として読み取ることができません。 SecurityListener.checkUmaskFail=[{0}] のumask設定で開始しようとしました。 少なくとも [{1}] と同じようにumaskを指定しないでTomcatを実行すると、ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlで構成されています)によってブロックされます SecurityListener.checkUmaskNone=システムプロパティ [{0}] にumask設定が見つかりませんでした。しかし、Tomcatはumaskをサポートするプラットフォームで動作しているようです。システムプロパティは通常、CATALINA_HOME/bin/catalina.shに設定されます。ライフサイクルリスナーのorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf/server.xmlに設定されています)では、少なくとも [{1}] と同じくらい拘束されたumaskが必要です。 SecurityListener.checkUmaskParseFail=値[{0}]を有効なumaskとして解析できませんでした。 diff --git a/java/org/apache/coyote/http2/LocalStrings_ja.properties b/java/org/apache/coyote/http2/LocalStrings_ja.properties index 01bc7954b3..f72063af9b 100644 --- a/java/org/apache/coyote/http2/LocalStrings_ja.properties +++ b/java/org/apache/coyote/http2/LocalStrings_ja.properties @@ -130,7 +130,7 @@ upgradeHandler.allocate.left=コネクション [{0}]、ストリーム [{1}]、 upgradeHandler.connectionError=接続エラー upgradeHandler.enableRfc7450Priorities=接続 [{0}] は、RFC 7450 優先順位が初期接続設定フレームで無効にされた後に有効にならない場合があります (RFC 9218 を参照) upgradeHandler.fallToDebug=\n\ -\ 注: HTTP/2 ストリームのエラーがさらに発生すると、DEBUG レベルでログに記録されます。 +\ 注: 以降のHTTP/2 ストリームエラーの発生はDEBUGレベルでログに出力されます。 upgradeHandler.goaway.debug=コネクション [{0}]、Goaway、最終ストリーム [{1}]、エラーコード [{2}]、デバッグデータ [{3}] upgradeHandler.init=コネクション[{0}]、状態[{1}] upgradeHandler.invalidPreface=コネクション[{0}]、無効なConnection Preface diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 98c0ac90e3..76fa899f24 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -266,6 +266,9 @@ Update the internal fork of Apache Commons DBCP to 2.12.0. (markt) + +Improvements to Japanese translations by tak7iji. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/04: Fix translation and update RFC reference
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 251a990ede251a0d911dcd2b3d5e3d85d7a6ae65 Author: Mark Thomas AuthorDate: Thu May 2 15:27:28 2024 +0100 Fix translation and update RFC reference --- java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties index a1be4a83bd..a4e90bd377 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_fr.properties @@ -45,7 +45,7 @@ http.tooManyColons=Une adresse IPv6 ne peut pas contenir plus de deux caractère http.tooManyDoubleColons=Une adresse IPv6 ne peut contenir qu'une seule séquence "::" http.tooManyHextets=L''adresse IPv6 contient [{0}] groupes de 4 octets mais une adresse IPv6 valide ne doit pas en avoir plus de 8 -httpHeaderParser.invalidHeader=La ligne d''en-t�te HTTP [{0}] ne respecte pas la RFC 7230. La requ�te a �t� rejet�e. +httpHeaderParser.invalidHeader=La ligne d''en-tête HTTP [{0}] ne respecte pas la RFC 9112. La requête a été rejetée. sf.bareitem.invalidCharacter=Le caractère [{0}] invalide a été rencontré en début d''un objet sf.base64.invalidCharacter=Le caractère [{0}] est invalide dans une séquence base64 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/04: Fix BZ 68884 - improve handling of large scale WebSocket disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 8b4ea8858bab738be2b1a68807fdcf61d6e5dc3f Author: Mark Thomas AuthorDate: Thu May 2 15:13:53 2024 +0100 Fix BZ 68884 - improve handling of large scale WebSocket disconnects --- java/org/apache/tomcat/websocket/Constants.java| 5 + .../tomcat/websocket/WsRemoteEndpointImplBase.java | 23 +- java/org/apache/tomcat/websocket/WsSession.java| 23 +- webapps/docs/changelog.xml | 12 +++ webapps/docs/web-socket-howto.xml | 14 +++-- 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/java/org/apache/tomcat/websocket/Constants.java b/java/org/apache/tomcat/websocket/Constants.java index f619c59642..8012d7989a 100644 --- a/java/org/apache/tomcat/websocket/Constants.java +++ b/java/org/apache/tomcat/websocket/Constants.java @@ -100,6 +100,11 @@ public class Constants { // Default is 30 seconds - setting is in milliseconds public static final long DEFAULT_SESSION_CLOSE_TIMEOUT = TimeUnit.SECONDS.toMillis(30); +// Configuration for session close timeout +public static final String ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT_PROPERTY = "org.apache.tomcat.websocket.ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT"; +// Default is 50 milliseconds - setting is in milliseconds +public static final long DEFAULT_ABNORMAL_SESSION_CLOSE_SEND_TIMEOUT = 50; + // Configuration for read idle timeout on WebSocket session public static final String READ_IDLE_TIMEOUT_MS = "org.apache.tomcat.websocket.READ_IDLE_TIMEOUT_MS"; diff --git a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java index 9843a77115..bf41680478 100644 --- a/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java +++ b/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java @@ -240,7 +240,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { void sendMessageBlock(CharBuffer part, boolean last) throws IOException { -long timeoutExpiry = getTimeoutExpiry(); +long timeout = getBlockingSendTimeout(); boolean isDone = false; while (!isDone) { encoderBuffer.clear(); @@ -250,22 +250,27 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } isDone = !cr.isOverflow(); encoderBuffer.flip(); -sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeoutExpiry); +sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeout); } stateMachine.complete(last); } void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last) throws IOException { -sendMessageBlock(opCode, payload, last, getTimeoutExpiry()); +sendMessageBlock(opCode, payload, last, getBlockingSendTimeout()); } -private long getTimeoutExpiry() { -// Get the timeout before we send the message. The message may -// trigger a session close and depending on timing the client -// session may close before we can read the timeout. -long timeout = getBlockingSendTimeout(); +void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeout) throws IOException { +/* + * Get the timeout before we send the message. The message may trigger a session close and depending on timing + * the client session may close before we can read the timeout. + */ +sendMessageBlockInternal(opCode, payload, last, getTimeoutExpiry(timeout)); +} + + +private long getTimeoutExpiry(long timeout) { if (timeout < 0) { return Long.MAX_VALUE; } else { @@ -274,7 +279,7 @@ public abstract class WsRemoteEndpointImplBase implements RemoteEndpoint { } -private void sendMessageBlock(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) +private void sendMessageBlockInternal(byte opCode, ByteBuffer payload, boolean last, long timeoutExpiry) throws IOException { wsSession.updateLastActiveWrite(); diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index be16756bf4..5385cf038c 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -688,6 +688,22 @@ public class WsSession implements Session { } +/* + * Returns the session close timeout in milliseconds + */ +private long getAbnormalSessionCloseSendTimeout() { +long result = 0; +Object obj = userProperties.get(Constants.ABNORMAL_SESSION_CLOSE_S
(tomcat) 03/04: Update RFC reference
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 7f348da583c7491dcec576833f656e325f6b8058 Author: Mark Thomas AuthorDate: Thu May 2 15:32:28 2024 +0100 Update RFC reference --- java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties index abde689744..a95ae9dc20 100644 --- a/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties +++ b/java/org/apache/tomcat/util/http/parser/LocalStrings_ja.properties @@ -45,7 +45,7 @@ http.tooManyColons=IPv6 アドレスでは文字 : を 2 つ以上連続する http.tooManyDoubleColons=IPv6アドレスは単一の '::'シーケンスのみを含むことができます。 http.tooManyHextets=IPv6 アドレスは [{0}] ヘクステットで構成されていますが、正常な IPv6 アドレスなら 8 ヘクステット以上になりません。 -httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 7230 に準拠していません。リクエストは拒否されました。 +httpHeaderParser.invalidHeader=HTTP ヘッダーの [{0}] 行目は RFC 9112 に準拠していません。リクエストは拒否されました。 sf.bareitem.invalidCharacter=ベアアイテムの開始を解析中に無効な文字 [{0}] が見つかりました sf.base64.invalidCharacter=文字 [{0}] は base64 シーケンス内では無効です - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated (6bd2cad423 -> a7f39b0233)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from 6bd2cad423 Javadoc cleanup for Coyote new 8b4ea8858b Fix BZ 68884 - improve handling of large scale WebSocket disconnects new 251a990ede Fix translation and update RFC reference new 7f348da583 Update RFC reference new a7f39b0233 Improvements to Japanese translations by tak7iji The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../catalina/security/LocalStrings_ja.properties | 3 +++ .../apache/coyote/http2/LocalStrings_ja.properties | 2 +- .../util/http/parser/LocalStrings_fr.properties| 2 +- .../util/http/parser/LocalStrings_ja.properties| 2 +- java/org/apache/tomcat/websocket/Constants.java| 5 + .../tomcat/websocket/WsRemoteEndpointImplBase.java | 23 +- java/org/apache/tomcat/websocket/WsSession.java| 23 +- webapps/docs/changelog.xml | 15 ++ webapps/docs/web-socket-howto.xml | 14 +++-- 9 files changed, 74 insertions(+), 15 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Improve handling of multiple disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 0abb1b1a2b Improve handling of multiple disconnects 0abb1b1a2b is described below commit 0abb1b1a2b015ff963b5686d17322b1b08aae7cb Author: Mark Thomas AuthorDate: Wed May 1 17:20:07 2024 +0100 Improve handling of multiple disconnects --- webapps/docs/changelog.xml | 4 webapps/examples/WEB-INF/classes/websocket/snake/Snake.java | 3 +-- .../WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 9 + webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java | 5 ++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 85e4c780a1..7f523a580f 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -204,6 +204,10 @@ Examples: Increase the number of previous messages displayed when using the WebSocket chat application. (markt) + +Examples: Improve performance of WebSocket snake application when +multiple clients disconnect at the same time. (markt) + diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java index 7a112220c5..3dea20da48 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java @@ -67,8 +67,7 @@ public class Snake { try { session.getBasicRemote().sendText(msg); } catch (IOException ioe) { -CloseReason cr = -new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); +CloseReason cr = new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); try { session.close(cr); } catch (IOException ioe2) { diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index 84ed091b3f..48f92215f1 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -75,6 +75,9 @@ public class SnakeAnnotation { @OnOpen public void onOpen(Session session) { +// If the messages take longer than TICK_DELAY to be sent, the game isn't going to work properly. + session.getUserProperties().put("org.apache.tomcat.websocket.BLOCKING_SEND_TIMEOUT", +Long.valueOf(SnakeTimer.TICK_DELAY)); this.snake = new Snake(id, session); SnakeTimer.addSnake(snake); StringBuilder sb = new StringBuilder(); @@ -87,8 +90,7 @@ public class SnakeAnnotation { sb.append(','); } } -SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", -sb.toString())); +SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", sb.toString())); } @@ -109,8 +111,7 @@ public class SnakeAnnotation { @OnClose public void onClose() { SnakeTimer.removeSnake(snake); -SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", -Integer.valueOf(id))); +SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", Integer.valueOf(id))); } diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java index 6b777e94e3..872f2dcddc 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java @@ -36,7 +36,7 @@ public class SnakeTimer { private static Timer gameTimer = null; -private static final long TICK_DELAY = 100; +static final long TICK_DELAY = 100; private static final ConcurrentHashMap snakes = new ConcurrentHashMap<>(); @@ -73,8 +73,7 @@ public class SnakeTimer { sb.append(','); } } -broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", -sb.toString())); +broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", sb.toString())); } protected static void broadcast(String message) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Improve handling of multiple disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 3cb29d58e2 Improve handling of multiple disconnects 3cb29d58e2 is described below commit 3cb29d58e25862208700dc3aa05d716c7c0d5f69 Author: Mark Thomas AuthorDate: Wed May 1 17:20:07 2024 +0100 Improve handling of multiple disconnects --- webapps/docs/changelog.xml | 4 webapps/examples/WEB-INF/classes/websocket/snake/Snake.java | 3 +-- .../WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 9 + webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java | 5 ++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 3e6114bda0..ecd5c7e36b 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -195,6 +195,10 @@ Examples: Increase the number of previous messages displayed when using the WebSocket chat application. (markt) + +Examples: Improve performance of WebSocket snake application when +multiple clients disconnect at the same time. (markt) + diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java index 619a879c80..5936bf4303 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java @@ -67,8 +67,7 @@ public class Snake { try { session.getBasicRemote().sendText(msg); } catch (IOException ioe) { -CloseReason cr = -new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); +CloseReason cr = new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); try { session.close(cr); } catch (IOException ioe2) { diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index 37b1cf9626..442b5885ee 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -75,6 +75,9 @@ public class SnakeAnnotation { @OnOpen public void onOpen(Session session) { +// If the messages take longer than TICK_DELAY to be sent, the game isn't going to work properly. + session.getUserProperties().put("org.apache.tomcat.websocket.BLOCKING_SEND_TIMEOUT", +Long.valueOf(SnakeTimer.TICK_DELAY)); this.snake = new Snake(id, session); SnakeTimer.addSnake(snake); StringBuilder sb = new StringBuilder(); @@ -87,8 +90,7 @@ public class SnakeAnnotation { sb.append(','); } } -SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", -sb.toString())); +SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", sb.toString())); } @@ -109,8 +111,7 @@ public class SnakeAnnotation { @OnClose public void onClose() { SnakeTimer.removeSnake(snake); -SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", -Integer.valueOf(id))); +SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", Integer.valueOf(id))); } diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java index 6b777e94e3..872f2dcddc 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java @@ -36,7 +36,7 @@ public class SnakeTimer { private static Timer gameTimer = null; -private static final long TICK_DELAY = 100; +static final long TICK_DELAY = 100; private static final ConcurrentHashMap snakes = new ConcurrentHashMap<>(); @@ -73,8 +73,7 @@ public class SnakeTimer { sb.append(','); } } -broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", -sb.toString())); +broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", sb.toString())); } protected static void broadcast(String message) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Improve handling of multiple disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 3d077db9d7 Improve handling of multiple disconnects 3d077db9d7 is described below commit 3d077db9d744df1585d252d367166dd69b659c1e Author: Mark Thomas AuthorDate: Wed May 1 17:20:07 2024 +0100 Improve handling of multiple disconnects --- webapps/docs/changelog.xml | 4 webapps/examples/WEB-INF/classes/websocket/snake/Snake.java | 3 +-- .../WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 9 + webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java | 5 ++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index e0ccec8de6..65b12d85c4 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -217,6 +217,10 @@ Examples: Increase the number of previous messages displayed when using the WebSocket chat application. (markt) + +Examples: Improve performance of WebSocket snake application when +multiple clients disconnect at the same time. (markt) + diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java index 619a879c80..5936bf4303 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/Snake.java @@ -67,8 +67,7 @@ public class Snake { try { session.getBasicRemote().sendText(msg); } catch (IOException ioe) { -CloseReason cr = -new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); +CloseReason cr = new CloseReason(CloseCodes.CLOSED_ABNORMALLY, ioe.getMessage()); try { session.close(cr); } catch (IOException ioe2) { diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index 37b1cf9626..442b5885ee 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -75,6 +75,9 @@ public class SnakeAnnotation { @OnOpen public void onOpen(Session session) { +// If the messages take longer than TICK_DELAY to be sent, the game isn't going to work properly. + session.getUserProperties().put("org.apache.tomcat.websocket.BLOCKING_SEND_TIMEOUT", +Long.valueOf(SnakeTimer.TICK_DELAY)); this.snake = new Snake(id, session); SnakeTimer.addSnake(snake); StringBuilder sb = new StringBuilder(); @@ -87,8 +90,7 @@ public class SnakeAnnotation { sb.append(','); } } -SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", -sb.toString())); +SnakeTimer.broadcast(String.format("{\"type\": \"join\",\"data\":[%s]}", sb.toString())); } @@ -109,8 +111,7 @@ public class SnakeAnnotation { @OnClose public void onClose() { SnakeTimer.removeSnake(snake); -SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", -Integer.valueOf(id))); +SnakeTimer.broadcast(String.format("{\"type\": \"leave\", \"id\": %d}", Integer.valueOf(id))); } diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java index 6b777e94e3..872f2dcddc 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeTimer.java @@ -36,7 +36,7 @@ public class SnakeTimer { private static Timer gameTimer = null; -private static final long TICK_DELAY = 100; +static final long TICK_DELAY = 100; private static final ConcurrentHashMap snakes = new ConcurrentHashMap<>(); @@ -73,8 +73,7 @@ public class SnakeTimer { sb.append(','); } } -broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", -sb.toString())); +broadcast(String.format("{\"type\": \"update\", \"data\" : [%s]}", sb.toString())); } protected static void broadcast(String message) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Remove duplicate leave notification
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 06f336b6e4 Remove duplicate leave notification 06f336b6e4 is described below commit 06f336b6e4109b688bde1f54bde44fb2f13b2e9e Author: Mark Thomas AuthorDate: Wed May 1 17:16:06 2024 +0100 Remove duplicate leave notification session.close() will trigger onClose() exactly once --- webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 1 - 1 file changed, 1 deletion(-) diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index d3d9700021..84ed091b3f 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -120,7 +120,6 @@ public class SnakeAnnotation { * Assume all errors are fatal. Close the session and remove the snake from the game. */ session.close(); -onClose(); /* * Correct action depends on root cause. Protect against infinite loops while looking for root cause. */ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Remove duplicate leave notification
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new a8c4b9c27a Remove duplicate leave notification a8c4b9c27a is described below commit a8c4b9c27a20e1527b4bf3afe537a6d01bb9fb4f Author: Mark Thomas AuthorDate: Wed May 1 17:16:06 2024 +0100 Remove duplicate leave notification session.close() will trigger onClose() exactly once --- webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 1 - 1 file changed, 1 deletion(-) diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index 7f14ab8cca..37b1cf9626 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -120,7 +120,6 @@ public class SnakeAnnotation { * Assume all errors are fatal. Close the session and remove the snake from the game. */ session.close(); -onClose(); /* * Correct action depends on root cause. Protect against infinite loops while looking for root cause. */ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Remove duplicate leave notification
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 4571b30eb9 Remove duplicate leave notification 4571b30eb9 is described below commit 4571b30eb912f2f7602f721f1c0ed2d79f77db68 Author: Mark Thomas AuthorDate: Wed May 1 17:16:06 2024 +0100 Remove duplicate leave notification session.close() will trigger onClose() exactly once --- webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java | 1 - 1 file changed, 1 deletion(-) diff --git a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java index 7f14ab8cca..37b1cf9626 100644 --- a/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/snake/SnakeAnnotation.java @@ -120,7 +120,6 @@ public class SnakeAnnotation { * Assume all errors are fatal. Close the session and remove the snake from the game. */ session.close(); -onClose(); /* * Correct action depends on root cause. Protect against infinite loops while looking for root cause. */ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/02: Improve handling of concurrent disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit b779a10c6a45c1531690fe2f67e9e7722c35cade Author: Mark Thomas AuthorDate: Wed May 1 12:31:07 2024 +0100 Improve handling of concurrent disconnects --- webapps/docs/changelog.xml | 8 +++ .../classes/websocket/chat/ChatAnnotation.java | 71 -- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 5217123962..7eda587865 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -194,6 +194,14 @@ + + + +Examples: Improve performance of WebSocket chat application when +multiple clients disconnect at the same time. (markt) + + + diff --git a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java index d1d55234da..dee5c4e5ab 100644 --- a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java @@ -17,6 +17,8 @@ package websocket.chat; import java.io.IOException; +import java.util.ArrayDeque; +import java.util.Queue; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.atomic.AtomicInteger; @@ -40,11 +42,16 @@ public class ChatAnnotation { private static final String GUEST_PREFIX = "Guest"; private static final AtomicInteger connectionIds = new AtomicInteger(0); -private static final Set connections = -new CopyOnWriteArraySet<>(); +private static final Set connections = new CopyOnWriteArraySet<>(); private final String nickname; private Session session; +/* + * The queue of messages that may build up while another message is being sent. The thread that sends a message is + * responsible for clearing any queue that builds up while that message is being sent. + */ +private Queue messageBacklog = new ArrayDeque<>(); +private boolean messageInProgress = false; public ChatAnnotation() { nickname = GUEST_PREFIX + connectionIds.getAndIncrement(); @@ -63,8 +70,7 @@ public class ChatAnnotation { @OnClose public void end() { connections.remove(this); -String message = String.format("* %s %s", -nickname, "has disconnected."); +String message = String.format("* %s %s", nickname, "has disconnected."); broadcast(message); } @@ -72,37 +78,64 @@ public class ChatAnnotation { @OnMessage public void incoming(String message) { // Never trust the client -String filteredMessage = String.format("%s: %s", -nickname, HTMLFilter.filter(message.toString())); +String filteredMessage = String.format("%s: %s", nickname, HTMLFilter.filter(message.toString())); broadcast(filteredMessage); } - - @OnError public void onError(Throwable t) throws Throwable { log.error("Chat Error: " + t.toString(), t); } +/* + * synchronized blocks are limited to operations that are expected to be quick. More specifically, messages are not + * sent from within a synchronized block. + */ +private void sendMessage(String msg) throws IOException { + +synchronized (this) { +if (messageInProgress) { +messageBacklog.add(msg); +return; +} else { +messageInProgress = true; +} +} + +boolean queueHasMessagesToBeSent = true; + +String messageToSend = msg; +do { +session.getBasicRemote().sendText(messageToSend); +synchronized (this) { +messageToSend = messageBacklog.poll(); +if (messageToSend == null) { +messageInProgress = false; +queueHasMessagesToBeSent = false; +} +} + +} while (queueHasMessagesToBeSent); + } + + private static void broadcast(String msg) { for (ChatAnnotation client : connections) { try { -synchronized (client) { -client.session.getBasicRemote().sendText(msg); -} +client.sendMessage(msg); } catch (IOException e) { log.debug("Chat Error: Failed to send message to client", e); -connections.remove(client); -try { -client.session.close(); -} catch (IOException e1) { -// Ignore +
(tomcat) 02/02: Increase scrollback
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 86c148cbd9c045e12f09b87c5933e144655148b5 Author: Mark Thomas AuthorDate: Wed May 1 12:32:36 2024 +0100 Increase scrollback Originally for debugging but viewed as generally useful. --- webapps/docs/changelog.xml| 4 webapps/examples/websocket/chat.xhtml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7eda587865..85e4c780a1 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -200,6 +200,10 @@ Examples: Improve performance of WebSocket chat application when multiple clients disconnect at the same time. (markt) + +Examples: Increase the number of previous messages displayed when using +the WebSocket chat application. (markt) + diff --git a/webapps/examples/websocket/chat.xhtml b/webapps/examples/websocket/chat.xhtml index 6c863feafa..f5b4dc3579 100644 --- a/webapps/examples/websocket/chat.xhtml +++ b/webapps/examples/websocket/chat.xhtml @@ -31,7 +31,7 @@ border: 1px solid #CC; border-right-color: #99; border-bottom-color: #99; -height: 170px; +height: 600px; overflow-y: scroll; padding: 5px; width: 100%; @@ -102,7 +102,7 @@ p.style.wordWrap = 'break-word'; p.innerHTML = message; console.appendChild(p); -while (console.childNodes.length > 25) { +while (console.childNodes.length > 100) { console.removeChild(console.firstChild); } console.scrollTop = console.scrollHeight; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated (75d8aed87c -> 86c148cbd9)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 75d8aed87c Javadoc cleanup for Catalina new b779a10c6a Improve handling of concurrent disconnects new 86c148cbd9 Increase scrollback The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: webapps/docs/changelog.xml | 12 .../classes/websocket/chat/ChatAnnotation.java | 71 -- webapps/examples/websocket/chat.xhtml | 4 +- 3 files changed, 66 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/02: Improve handling of concurrent disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 39f75945410ef5412e7f9a0804bb0b3ce5535640 Author: Mark Thomas AuthorDate: Wed May 1 12:31:07 2024 +0100 Improve handling of concurrent disconnects --- webapps/docs/changelog.xml | 8 +++ .../classes/websocket/chat/ChatAnnotation.java | 71 -- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 18667ad683..87b5b4bf5d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -185,6 +185,14 @@ + + + +Examples: Improve performance of WebSocket chat application when +multiple clients disconnect at the same time. (markt) + + + diff --git a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java index c0a2f2b515..337e08024d 100644 --- a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java @@ -17,6 +17,8 @@ package websocket.chat; import java.io.IOException; +import java.util.ArrayDeque; +import java.util.Queue; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.atomic.AtomicInteger; @@ -40,11 +42,16 @@ public class ChatAnnotation { private static final String GUEST_PREFIX = "Guest"; private static final AtomicInteger connectionIds = new AtomicInteger(0); -private static final Set connections = -new CopyOnWriteArraySet<>(); +private static final Set connections = new CopyOnWriteArraySet<>(); private final String nickname; private Session session; +/* + * The queue of messages that may build up while another message is being sent. The thread that sends a message is + * responsible for clearing any queue that builds up while that message is being sent. + */ +private Queue messageBacklog = new ArrayDeque<>(); +private boolean messageInProgress = false; public ChatAnnotation() { nickname = GUEST_PREFIX + connectionIds.getAndIncrement(); @@ -63,8 +70,7 @@ public class ChatAnnotation { @OnClose public void end() { connections.remove(this); -String message = String.format("* %s %s", -nickname, "has disconnected."); +String message = String.format("* %s %s", nickname, "has disconnected."); broadcast(message); } @@ -72,37 +78,64 @@ public class ChatAnnotation { @OnMessage public void incoming(String message) { // Never trust the client -String filteredMessage = String.format("%s: %s", -nickname, HTMLFilter.filter(message.toString())); +String filteredMessage = String.format("%s: %s", nickname, HTMLFilter.filter(message.toString())); broadcast(filteredMessage); } - - @OnError public void onError(Throwable t) throws Throwable { log.error("Chat Error: " + t.toString(), t); } +/* + * synchronized blocks are limited to operations that are expected to be quick. More specifically, messages are not + * sent from within a synchronized block. + */ +private void sendMessage(String msg) throws IOException { + +synchronized (this) { +if (messageInProgress) { +messageBacklog.add(msg); +return; +} else { +messageInProgress = true; +} +} + +boolean queueHasMessagesToBeSent = true; + +String messageToSend = msg; +do { +session.getBasicRemote().sendText(messageToSend); +synchronized (this) { +messageToSend = messageBacklog.poll(); +if (messageToSend == null) { +messageInProgress = false; +queueHasMessagesToBeSent = false; +} +} + +} while (queueHasMessagesToBeSent); + } + + private static void broadcast(String msg) { for (ChatAnnotation client : connections) { try { -synchronized (client) { -client.session.getBasicRemote().sendText(msg); -} +client.sendMessage(msg); } catch (IOException e) { log.debug("Chat Error: Failed to send message to client", e); -connections.remove(client); -try { -client.session.close(); -} catch (IOException e1) { -// Ignore +
(tomcat) 02/02: Increase scrollback
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit ea40f2ed7abc17769e9ae6fb674f79d5e5f964ef Author: Mark Thomas AuthorDate: Wed May 1 12:32:36 2024 +0100 Increase scrollback Originally for debugging but viewed as generally useful. --- webapps/docs/changelog.xml| 4 webapps/examples/websocket/chat.xhtml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 87b5b4bf5d..3e6114bda0 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -191,6 +191,10 @@ Examples: Improve performance of WebSocket chat application when multiple clients disconnect at the same time. (markt) + +Examples: Increase the number of previous messages displayed when using +the WebSocket chat application. (markt) + diff --git a/webapps/examples/websocket/chat.xhtml b/webapps/examples/websocket/chat.xhtml index 6c863feafa..f5b4dc3579 100644 --- a/webapps/examples/websocket/chat.xhtml +++ b/webapps/examples/websocket/chat.xhtml @@ -31,7 +31,7 @@ border: 1px solid #CC; border-right-color: #99; border-bottom-color: #99; -height: 170px; +height: 600px; overflow-y: scroll; padding: 5px; width: 100%; @@ -102,7 +102,7 @@ p.style.wordWrap = 'break-word'; p.innerHTML = message; console.appendChild(p); -while (console.childNodes.length > 25) { +while (console.childNodes.length > 100) { console.removeChild(console.firstChild); } console.scrollTop = console.scrollHeight; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated (2ce8e9ebf4 -> ea40f2ed7a)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 2ce8e9ebf4 Javadoc cleanup for Catalina new 39f7594541 Improve handling of concurrent disconnects new ea40f2ed7a Increase scrollback The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: webapps/docs/changelog.xml | 12 .../classes/websocket/chat/ChatAnnotation.java | 71 -- webapps/examples/websocket/chat.xhtml | 4 +- 3 files changed, 66 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated (5a90d88c86 -> 4b1e0f1d7b)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from 5a90d88c86 Javadoc cleanup for Catalina new 8f62c52a79 Improve handling of concurrent disconnects new 4b1e0f1d7b Increase scrollback The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: webapps/docs/changelog.xml | 12 .../classes/websocket/chat/ChatAnnotation.java | 71 -- webapps/examples/websocket/chat.xhtml | 4 +- 3 files changed, 66 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/02: Increase scrollback
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 4b1e0f1d7b4ae1f7a4824df93363821e57c422ff Author: Mark Thomas AuthorDate: Wed May 1 12:32:36 2024 +0100 Increase scrollback Originally for debugging but viewed as generally useful. --- webapps/docs/changelog.xml| 4 webapps/examples/websocket/chat.xhtml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 0e929662fa..e0ccec8de6 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -213,6 +213,10 @@ Examples: Improve performance of WebSocket chat application when multiple clients disconnect at the same time. (markt) + +Examples: Increase the number of previous messages displayed when using +the WebSocket chat application. (markt) + diff --git a/webapps/examples/websocket/chat.xhtml b/webapps/examples/websocket/chat.xhtml index 6c863feafa..f5b4dc3579 100644 --- a/webapps/examples/websocket/chat.xhtml +++ b/webapps/examples/websocket/chat.xhtml @@ -31,7 +31,7 @@ border: 1px solid #CC; border-right-color: #99; border-bottom-color: #99; -height: 170px; +height: 600px; overflow-y: scroll; padding: 5px; width: 100%; @@ -102,7 +102,7 @@ p.style.wordWrap = 'break-word'; p.innerHTML = message; console.appendChild(p); -while (console.childNodes.length > 25) { +while (console.childNodes.length > 100) { console.removeChild(console.firstChild); } console.scrollTop = console.scrollHeight; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/02: Improve handling of concurrent disconnects
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 8f62c52a79c5c35ee8a22f9de43d09a2461e4a7d Author: Mark Thomas AuthorDate: Wed May 1 12:31:07 2024 +0100 Improve handling of concurrent disconnects --- webapps/docs/changelog.xml | 8 +++ .../classes/websocket/chat/ChatAnnotation.java | 71 -- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index aa190cbae4..0e929662fa 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -207,6 +207,14 @@ + + + +Examples: Improve performance of WebSocket chat application when +multiple clients disconnect at the same time. (markt) + + + diff --git a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java index c0a2f2b515..337e08024d 100644 --- a/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java +++ b/webapps/examples/WEB-INF/classes/websocket/chat/ChatAnnotation.java @@ -17,6 +17,8 @@ package websocket.chat; import java.io.IOException; +import java.util.ArrayDeque; +import java.util.Queue; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.atomic.AtomicInteger; @@ -40,11 +42,16 @@ public class ChatAnnotation { private static final String GUEST_PREFIX = "Guest"; private static final AtomicInteger connectionIds = new AtomicInteger(0); -private static final Set connections = -new CopyOnWriteArraySet<>(); +private static final Set connections = new CopyOnWriteArraySet<>(); private final String nickname; private Session session; +/* + * The queue of messages that may build up while another message is being sent. The thread that sends a message is + * responsible for clearing any queue that builds up while that message is being sent. + */ +private Queue messageBacklog = new ArrayDeque<>(); +private boolean messageInProgress = false; public ChatAnnotation() { nickname = GUEST_PREFIX + connectionIds.getAndIncrement(); @@ -63,8 +70,7 @@ public class ChatAnnotation { @OnClose public void end() { connections.remove(this); -String message = String.format("* %s %s", -nickname, "has disconnected."); +String message = String.format("* %s %s", nickname, "has disconnected."); broadcast(message); } @@ -72,37 +78,64 @@ public class ChatAnnotation { @OnMessage public void incoming(String message) { // Never trust the client -String filteredMessage = String.format("%s: %s", -nickname, HTMLFilter.filter(message.toString())); +String filteredMessage = String.format("%s: %s", nickname, HTMLFilter.filter(message.toString())); broadcast(filteredMessage); } - - @OnError public void onError(Throwable t) throws Throwable { log.error("Chat Error: " + t.toString(), t); } +/* + * synchronized blocks are limited to operations that are expected to be quick. More specifically, messages are not + * sent from within a synchronized block. + */ +private void sendMessage(String msg) throws IOException { + +synchronized (this) { +if (messageInProgress) { +messageBacklog.add(msg); +return; +} else { +messageInProgress = true; +} +} + +boolean queueHasMessagesToBeSent = true; + +String messageToSend = msg; +do { +session.getBasicRemote().sendText(messageToSend); +synchronized (this) { +messageToSend = messageBacklog.poll(); +if (messageToSend == null) { +messageInProgress = false; +queueHasMessagesToBeSent = false; +} +} + +} while (queueHasMessagesToBeSent); + } + + private static void broadcast(String msg) { for (ChatAnnotation client : connections) { try { -synchronized (client) { -client.session.getBasicRemote().sendText(msg); -} +client.sendMessage(msg); } catch (IOException e) { log.debug("Chat Error: Failed to send message to client", e); -connections.remove(client); -try { -client.session.close(); -} catch (IOException e1) { -// Ignore +
(tomcat) 03/03: Align with Commons DBCP 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit cf27ef1a3dacb08b251bf145ae88ac6a973edb84 Author: Mark Thomas AuthorDate: Mon Apr 29 12:59:25 2024 +0100 Align with Commons DBCP 2.12.0 Based on review of diff --- java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 3 ++- .../tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 10 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index 20b3c0c6ed..6506b3fcbe 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -766,8 +766,9 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean * Gets the underlying connection pool. * * @return the underlying connection pool. + * @since DBCP 2.10.0 */ -protected GenericObjectPool getConnectionPool() { +public GenericObjectPool getConnectionPool() { return connectionPool; } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java index ae2dc3be23..3007a6cdcb 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java @@ -573,11 +573,13 @@ public class DriverAdapterCPDS implements ConnectionPoolDataSource, Referenceabl assertInitializationAllowed(); connectionProperties = props; if (connectionProperties != null) { -if (connectionProperties.containsKey(Constants.KEY_USER)) { -setUser(connectionProperties.getProperty(Constants.KEY_USER)); +final String user = connectionProperties.getProperty(Constants.KEY_USER); +if (user != null) { +setUser(user); } -if (connectionProperties.containsKey(Constants.KEY_PASSWORD)) { - setPassword(connectionProperties.getProperty(Constants.KEY_PASSWORD)); +final String password = connectionProperties.getProperty(Constants.KEY_PASSWORD); +if (password != null) { +setPassword(password); } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/03: Update Commons DBCP to 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 8f2e9bd56c4e0942e17c949e059167fb91831419 Author: Mark Thomas AuthorDate: Mon Apr 29 12:43:36 2024 +0100 Update Commons DBCP to 2.12.0 --- MERGE.txt | 2 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 148 + .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 127 +-- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- webapps/docs/changelog.xml | 3 + 38 files changed, 463 insertions(+), 402 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index e823ce862b..0dd73a4718 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -75,4 +75,4 @@ Sub-tree src/main/java/org/apache/commons/dbcp2 src/main/resources/org/apache/commons/dbcp2 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -b1e0c86d101aa43029625eb191aaee4306911702 (2023-03-08) +rel/commons-dbcp-2.12.0 (2024-03-04) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java index e57b4108a1..bff2021fd7 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java @@ -37,7 +37,7 @@ import org.apache.tomcat.dbcp.pool2.TrackedUse; */ public class AbandonedTrace implements TrackedUse, AutoCloseable { -static void add(AbandonedTrace receiver, AbandonedTrace trace) { +static void add(final AbandonedTrace receiver, final AbandonedTrace trace) { if (receiver != null) { receiver.addTrace(trace); } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index fcd65d5f0d..20b3c0c6ed 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -465,7 +465,6 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean return ConnectionFactoryFactory.createConnectionFactory(this, DriverFactory.createDriver(this)); } - /** * Creates a connection pool for this datasource. This method only exists so subclasses can replace the * implementation class. @@ -483,6 +482,10 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean updateJmxName(config); // Disable JMX on the underlying pool if the DS is not registered: config.setJmxEnabled(registeredJmxObjectName != null); +// Set up usage tracking if enabled +if (getAbandonedUsageTracking() && abandonedConfig != null) { +abandonedConfig.setUseUsageTracking(true); +} final GenericObjectPool gop = createObjectPool(factory, config, abandon
(tomcat) 01/03: Update internal fork of Commons BCEL to 6.9.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 3cf9a96caf34ea08c81878d6c0cac829261276ad Author: Mark Thomas AuthorDate: Mon Apr 29 12:04:15 2024 +0100 Update internal fork of Commons BCEL to 6.9.0 --- MERGE.txt | 2 +- java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java | 4 ++-- java/org/apache/tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml| 3 +++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index c3e81ab842..e823ce862b 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -37,7 +37,7 @@ Unused code is removed Sub-tree: src/main/java/org/apache/bcel The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -rel/commons-bcel-6.8.2 (2024-02-25) +rel/commons-bcel-6.9.0 (2024-04-27) Codec - diff --git a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java index 48a3644729..69a85b2c72 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java @@ -21,12 +21,12 @@ public class ArrayElementValue extends ElementValue // For array types, this is the array private final ElementValue[] elementValues; -ArrayElementValue(final int type, final ElementValue[] datums, final ConstantPool cpool) { +ArrayElementValue(final int type, final ElementValue[] elementValues, final ConstantPool cpool) { super(type, cpool); if (type != ARRAY) { throw new ClassFormatException("Only element values of type array can be built with this ctor - type specified: " + type); } -this.elementValues = datums; +this.elementValues = elementValues != null ? elementValues : ElementValue.EMPTY_ARRAY; } public ElementValue[] getElementValuesArray() { diff --git a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java index 8c68b3f696..3894f60a1a 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java @@ -60,6 +60,7 @@ public abstract class ElementValue { public static final byte PRIMITIVE_LONG = 'J'; public static final byte PRIMITIVE_SHORT = 'S'; public static final byte PRIMITIVE_BOOLEAN = 'Z'; +static final ElementValue[] EMPTY_ARRAY = {}; /** * Reads an {@code element_value} as an {@code ElementValue}. diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 08801ddc57..4be89f34d1 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -217,6 +217,9 @@ Update SpotBugs to 4.8.4. (markt) + +Update the internal fork of Apache Commons BCEL to 6.9.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated (7d3ed9890e -> cf27ef1a3d)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 7d3ed9890e Update SpotBugs to 4.8.4 new 3cf9a96caf Update internal fork of Commons BCEL to 6.9.0 new 8f2e9bd56c Update Commons DBCP to 2.12.0 new cf27ef1a3d Align with Commons DBCP 2.12.0 The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: MERGE.txt | 4 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 151 +- .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 137 +--- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- .../util/bcel/classfile/ArrayElementValue.java | 4 +- .../tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml | 6 + 40 files changed, 478 insertions(+), 410 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/03: Update Commons DBCP to 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 50ae70a293faae7b9a43aea77df3247e4d0525d1 Author: Mark Thomas AuthorDate: Mon Apr 29 12:43:36 2024 +0100 Update Commons DBCP to 2.12.0 --- MERGE.txt | 2 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 148 + .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 127 +-- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- webapps/docs/changelog.xml | 3 + 38 files changed, 463 insertions(+), 402 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index e823ce862b..0dd73a4718 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -75,4 +75,4 @@ Sub-tree src/main/java/org/apache/commons/dbcp2 src/main/resources/org/apache/commons/dbcp2 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -b1e0c86d101aa43029625eb191aaee4306911702 (2023-03-08) +rel/commons-dbcp-2.12.0 (2024-03-04) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java index e57b4108a1..bff2021fd7 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java @@ -37,7 +37,7 @@ import org.apache.tomcat.dbcp.pool2.TrackedUse; */ public class AbandonedTrace implements TrackedUse, AutoCloseable { -static void add(AbandonedTrace receiver, AbandonedTrace trace) { +static void add(final AbandonedTrace receiver, final AbandonedTrace trace) { if (receiver != null) { receiver.addTrace(trace); } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index fcd65d5f0d..20b3c0c6ed 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -465,7 +465,6 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean return ConnectionFactoryFactory.createConnectionFactory(this, DriverFactory.createDriver(this)); } - /** * Creates a connection pool for this datasource. This method only exists so subclasses can replace the * implementation class. @@ -483,6 +482,10 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean updateJmxName(config); // Disable JMX on the underlying pool if the DS is not registered: config.setJmxEnabled(registeredJmxObjectName != null); +// Set up usage tracking if enabled +if (getAbandonedUsageTracking() && abandonedConfig != null) { +abandonedConfig.setUseUsageTracking(true); +} final GenericObjectPool gop = createObjectPool(factory, config, abandon
(tomcat) 03/03: Align with Commons DBCP 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 27a703266f17b9fc4c9f68bdcd0f190f7dd0ba60 Author: Mark Thomas AuthorDate: Mon Apr 29 12:59:25 2024 +0100 Align with Commons DBCP 2.12.0 Based on review of diff --- java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 3 ++- .../tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 10 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index 20b3c0c6ed..6506b3fcbe 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -766,8 +766,9 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean * Gets the underlying connection pool. * * @return the underlying connection pool. + * @since DBCP 2.10.0 */ -protected GenericObjectPool getConnectionPool() { +public GenericObjectPool getConnectionPool() { return connectionPool; } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java index ae2dc3be23..3007a6cdcb 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java @@ -573,11 +573,13 @@ public class DriverAdapterCPDS implements ConnectionPoolDataSource, Referenceabl assertInitializationAllowed(); connectionProperties = props; if (connectionProperties != null) { -if (connectionProperties.containsKey(Constants.KEY_USER)) { -setUser(connectionProperties.getProperty(Constants.KEY_USER)); +final String user = connectionProperties.getProperty(Constants.KEY_USER); +if (user != null) { +setUser(user); } -if (connectionProperties.containsKey(Constants.KEY_PASSWORD)) { - setPassword(connectionProperties.getProperty(Constants.KEY_PASSWORD)); +final String password = connectionProperties.getProperty(Constants.KEY_PASSWORD); +if (password != null) { +setPassword(password); } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/03: Update internal fork of Commons BCEL to 6.9.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit cbf4fb90da4a4dfd51e384c51c98480f6ccb4cd7 Author: Mark Thomas AuthorDate: Mon Apr 29 12:04:15 2024 +0100 Update internal fork of Commons BCEL to 6.9.0 --- MERGE.txt | 2 +- java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java | 4 ++-- java/org/apache/tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml| 3 +++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index c3e81ab842..e823ce862b 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -37,7 +37,7 @@ Unused code is removed Sub-tree: src/main/java/org/apache/bcel The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -rel/commons-bcel-6.8.2 (2024-02-25) +rel/commons-bcel-6.9.0 (2024-04-27) Codec - diff --git a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java index 48a3644729..69a85b2c72 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java @@ -21,12 +21,12 @@ public class ArrayElementValue extends ElementValue // For array types, this is the array private final ElementValue[] elementValues; -ArrayElementValue(final int type, final ElementValue[] datums, final ConstantPool cpool) { +ArrayElementValue(final int type, final ElementValue[] elementValues, final ConstantPool cpool) { super(type, cpool); if (type != ARRAY) { throw new ClassFormatException("Only element values of type array can be built with this ctor - type specified: " + type); } -this.elementValues = datums; +this.elementValues = elementValues != null ? elementValues : ElementValue.EMPTY_ARRAY; } public ElementValue[] getElementValuesArray() { diff --git a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java index 8c68b3f696..3894f60a1a 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java @@ -60,6 +60,7 @@ public abstract class ElementValue { public static final byte PRIMITIVE_LONG = 'J'; public static final byte PRIMITIVE_SHORT = 'S'; public static final byte PRIMITIVE_BOOLEAN = 'Z'; +static final ElementValue[] EMPTY_ARRAY = {}; /** * Reads an {@code element_value} as an {@code ElementValue}. diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 47c4b174b5..f86a63668c 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -208,6 +208,9 @@ Update SpotBugs to 4.8.4. (markt) + +Update the internal fork of Apache Commons BCEL to 6.9.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated (fed5e0e1b6 -> 27a703266f)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from fed5e0e1b6 Update SpotBugs to 4.8.4 new cbf4fb90da Update internal fork of Commons BCEL to 6.9.0 new 50ae70a293 Update Commons DBCP to 2.12.0 new 27a703266f Align with Commons DBCP 2.12.0 The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: MERGE.txt | 4 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 151 +- .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 137 +--- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- .../util/bcel/classfile/ArrayElementValue.java | 4 +- .../tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml | 6 + 40 files changed, 478 insertions(+), 410 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/03: Update Commons DBCP to 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit b0ee756871e6a6dad743f6a6390719bfab0552dc Author: Mark Thomas AuthorDate: Mon Apr 29 12:43:36 2024 +0100 Update Commons DBCP to 2.12.0 --- MERGE.txt | 2 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 148 + .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 127 +-- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- webapps/docs/changelog.xml | 3 + 38 files changed, 463 insertions(+), 402 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index e64865b4cd..679450e6ad 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -66,4 +66,4 @@ Sub-tree src/main/java/org/apache/commons/dbcp2 src/main/resources/org/apache/commons/dbcp2 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -b1e0c86d101aa43029625eb191aaee4306911702 (2023-03-08) +rel/commons-dbcp-2.12.0 (2024-03-04) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java index e57b4108a1..bff2021fd7 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java @@ -37,7 +37,7 @@ import org.apache.tomcat.dbcp.pool2.TrackedUse; */ public class AbandonedTrace implements TrackedUse, AutoCloseable { -static void add(AbandonedTrace receiver, AbandonedTrace trace) { +static void add(final AbandonedTrace receiver, final AbandonedTrace trace) { if (receiver != null) { receiver.addTrace(trace); } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index 17de613be4..0e4aaa06bd 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -438,7 +438,6 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean return ConnectionFactoryFactory.createConnectionFactory(this, DriverFactory.createDriver(this)); } - /** * Creates a connection pool for this datasource. This method only exists so subclasses can replace the * implementation class. @@ -456,6 +455,10 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean updateJmxName(config); // Disable JMX on the underlying pool if the DS is not registered: config.setJmxEnabled(registeredJmxObjectName != null); +// Set up usage tracking if enabled +if (getAbandonedUsageTracking() && abandonedConfig != null) { +abandonedConfig.setUseUsageTracking(true); +} final GenericObjectPool gop = createObjectPool(factory, config, abandon
(tomcat) branch main updated (7706bdc80f -> 287f97c53a)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from 7706bdc80f Update SpotBugs to 4.8.4 new c611488dc9 Update internal fork of Commons BCEL to 6.9.0 new b0ee756871 Update Commons DBCP to 2.12.0 new 287f97c53a Align with Commons DBCP 2.12.0 The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: MERGE.txt | 4 +- .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java | 2 +- .../apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 151 +- .../tomcat/dbcp/dbcp2/BasicDataSourceFactory.java | 33 ++-- .../tomcat/dbcp/dbcp2/BasicDataSourceMXBean.java | 2 +- .../dbcp/dbcp2/ConnectionFactoryFactory.java | 3 +- .../apache/tomcat/dbcp/dbcp2/DataSourceMXBean.java | 13 ++ .../tomcat/dbcp/dbcp2/DelegatingConnection.java| 4 +- .../dbcp/dbcp2/DelegatingDatabaseMetaData.java | 6 +- .../dbcp/dbcp2/DelegatingPreparedStatement.java| 42 ++--- .../tomcat/dbcp/dbcp2/DelegatingResultSet.java | 2 +- .../tomcat/dbcp/dbcp2/DelegatingStatement.java | 12 +- .../org/apache/tomcat/dbcp/dbcp2/Jdbc41Bridge.java | 4 +- .../dbcp/dbcp2/PoolableCallableStatement.java | 2 +- .../tomcat/dbcp/dbcp2/PoolableConnection.java | 177 - .../dbcp/dbcp2/PoolableConnectionFactory.java | 2 +- .../dbcp/dbcp2/PoolablePreparedStatement.java | 13 +- .../tomcat/dbcp/dbcp2/PoolingConnection.java | 36 - .../tomcat/dbcp/dbcp2/PoolingDataSource.java | 8 +- .../apache/tomcat/dbcp/dbcp2/PoolingDriver.java| 2 +- java/org/apache/tomcat/dbcp/dbcp2/Utils.java | 3 +- .../dbcp/dbcp2/cpdsadapter/ConnectionImpl.java | 23 ++- .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 137 +--- .../dbcp2/cpdsadapter/PooledConnectionImpl.java| 20 ++- .../dbcp/dbcp2/cpdsadapter/package-info.java | 18 +-- .../dbcp2/datasources/CPDSConnectionFactory.java | 34 ++-- .../datasources/KeyedCPDSConnectionFactory.java| 2 +- .../dbcp2/datasources/PerUserPoolDataSource.java | 6 +- .../dbcp2/datasources/SharedPoolDataSource.java| 2 +- .../dbcp/dbcp2/datasources/package-info.java | 58 +++ .../dbcp/dbcp2/managed/BasicManagedDataSource.java | 15 +- .../managed/DataSourceXAConnectionFactory.java | 7 +- .../dbcp2/managed/LocalXAConnectionFactory.java| 8 +- .../dbcp/dbcp2/managed/ManagedConnection.java | 8 +- .../dbcp/dbcp2/managed/TransactionRegistry.java| 2 +- .../dbcp/dbcp2/managed/XAConnectionFactory.java| 4 +- .../org/apache/tomcat/dbcp/dbcp2/package-info.java | 12 +- .../util/bcel/classfile/ArrayElementValue.java | 4 +- .../tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml | 6 + 40 files changed, 478 insertions(+), 410 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/03: Update internal fork of Commons BCEL to 6.9.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit c611488dc94a063e19ef8f4aed9e999ebb2f48fe Author: Mark Thomas AuthorDate: Mon Apr 29 12:04:15 2024 +0100 Update internal fork of Commons BCEL to 6.9.0 --- MERGE.txt | 2 +- java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java | 4 ++-- java/org/apache/tomcat/util/bcel/classfile/ElementValue.java | 1 + webapps/docs/changelog.xml| 3 +++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index a4c15506df..e64865b4cd 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -37,7 +37,7 @@ Unused code is removed Sub-tree: src/main/java/org/apache/bcel The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -rel/commons-bcel-6.8.2 (2024-02-25) +rel/commons-bcel-6.9.0 (2024-04-27) FileUpload -- diff --git a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java index 48a3644729..69a85b2c72 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ArrayElementValue.java @@ -21,12 +21,12 @@ public class ArrayElementValue extends ElementValue // For array types, this is the array private final ElementValue[] elementValues; -ArrayElementValue(final int type, final ElementValue[] datums, final ConstantPool cpool) { +ArrayElementValue(final int type, final ElementValue[] elementValues, final ConstantPool cpool) { super(type, cpool); if (type != ARRAY) { throw new ClassFormatException("Only element values of type array can be built with this ctor - type specified: " + type); } -this.elementValues = datums; +this.elementValues = elementValues != null ? elementValues : ElementValue.EMPTY_ARRAY; } public ElementValue[] getElementValuesArray() { diff --git a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java index 8c68b3f696..3894f60a1a 100644 --- a/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java +++ b/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java @@ -60,6 +60,7 @@ public abstract class ElementValue { public static final byte PRIMITIVE_LONG = 'J'; public static final byte PRIMITIVE_SHORT = 'S'; public static final byte PRIMITIVE_BOOLEAN = 'Z'; +static final ElementValue[] EMPTY_ARRAY = {}; /** * Reads an {@code element_value} as an {@code ElementValue}. diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 5e3a82cd9f..e53f099bcc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -232,6 +232,9 @@ Update SpotBugs to 4.8.4. (markt) + +Update the internal fork of Apache Commons BCEL to 6.9.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/03: Align with Commons DBCP 2.12.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 287f97c53a36416d3f2964e160c8b65b6e61e8da Author: Mark Thomas AuthorDate: Mon Apr 29 12:59:25 2024 +0100 Align with Commons DBCP 2.12.0 Based on review of diff --- java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java | 3 ++- .../tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 10 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java index 0e4aaa06bd..790141e622 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.java @@ -727,8 +727,9 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean * Gets the underlying connection pool. * * @return the underlying connection pool. + * @since DBCP 2.10.0 */ -protected GenericObjectPool getConnectionPool() { +public GenericObjectPool getConnectionPool() { return connectionPool; } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java index ae2dc3be23..3007a6cdcb 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java @@ -573,11 +573,13 @@ public class DriverAdapterCPDS implements ConnectionPoolDataSource, Referenceabl assertInitializationAllowed(); connectionProperties = props; if (connectionProperties != null) { -if (connectionProperties.containsKey(Constants.KEY_USER)) { -setUser(connectionProperties.getProperty(Constants.KEY_USER)); +final String user = connectionProperties.getProperty(Constants.KEY_USER); +if (user != null) { +setUser(user); } -if (connectionProperties.containsKey(Constants.KEY_PASSWORD)) { - setPassword(connectionProperties.getProperty(Constants.KEY_PASSWORD)); +final String password = connectionProperties.getProperty(Constants.KEY_PASSWORD); +if (password != null) { +setPassword(password); } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Update SpotBugs to 4.8.4
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 7d3ed9890e Update SpotBugs to 4.8.4 7d3ed9890e is described below commit 7d3ed9890e059616d8fdf2a9439421bac520b02f Author: Mark Thomas AuthorDate: Mon Apr 29 10:22:08 2024 +0100 Update SpotBugs to 4.8.4 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index daa0782b31..8349f05d66 100644 --- a/build.properties.default +++ b/build.properties.default @@ -294,10 +294,10 @@ jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip # - SpotBugs (originally FindBugs) - -spotbugs.version=4.8.3 +spotbugs.version=4.8.4 spotbugs.checksum.enabled=true spotbugs.checksum.algorithm=SHA-512 -spotbugs.checksum.value=cf12a31f67d07e4da7d0e8ec7b3e9abcc891aae62af5e95a91c27f1f29470042d9b5d57e2cb2ec2aa07349313661e41b51de8442b17ec972b1f066bb36e77603 +spotbugs.checksum.value=3bdd417e4cd8e451ccc7d6fa41940d22038cb4558af9d1919f7c1eb6e442158fa11c53620ee471ed5550c7ea33930cab283c66513a28bc8d744919bac9510f8f spotbugs.home=${base.path}/spotbugs-${spotbugs.version} spotbugs.jar=${spotbugs.home}/lib/spotbugs-ant.jar spotbugs.loc=${base-maven.loc}/com/github/spotbugs/spotbugs/${spotbugs.version}/spotbugs-${spotbugs.version}.tgz diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 2e2b5f2a79..08801ddc57 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -214,6 +214,9 @@ Update JaCoCo to 0.8.12. (markt) + +Update SpotBugs to 4.8.4. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Update SpotBugs to 4.8.4
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new fed5e0e1b6 Update SpotBugs to 4.8.4 fed5e0e1b6 is described below commit fed5e0e1b6e85f5e75f9df88e86585f9207a6a14 Author: Mark Thomas AuthorDate: Mon Apr 29 10:22:08 2024 +0100 Update SpotBugs to 4.8.4 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 7258f7d22f..48f2b60e88 100644 --- a/build.properties.default +++ b/build.properties.default @@ -292,10 +292,10 @@ jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip # - SpotBugs (originally FindBugs) - -spotbugs.version=4.8.3 +spotbugs.version=4.8.4 spotbugs.checksum.enabled=true spotbugs.checksum.algorithm=SHA-512 -spotbugs.checksum.value=cf12a31f67d07e4da7d0e8ec7b3e9abcc891aae62af5e95a91c27f1f29470042d9b5d57e2cb2ec2aa07349313661e41b51de8442b17ec972b1f066bb36e77603 +spotbugs.checksum.value=3bdd417e4cd8e451ccc7d6fa41940d22038cb4558af9d1919f7c1eb6e442158fa11c53620ee471ed5550c7ea33930cab283c66513a28bc8d744919bac9510f8f spotbugs.home=${base.path}/spotbugs-${spotbugs.version} spotbugs.jar=${spotbugs.home}/lib/spotbugs-ant.jar spotbugs.loc=${base-maven.loc}/com/github/spotbugs/spotbugs/${spotbugs.version}/spotbugs-${spotbugs.version}.tgz diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index d37056e4f8..47c4b174b5 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -205,6 +205,9 @@ Update JaCoCo to 0.8.12. (markt) + +Update SpotBugs to 4.8.4. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Update SpotBugs to 4.8.4
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 7706bdc80f Update SpotBugs to 4.8.4 7706bdc80f is described below commit 7706bdc80f2f1b6f41d8db3070d1a82cba081fcb Author: Mark Thomas AuthorDate: Mon Apr 29 10:22:08 2024 +0100 Update SpotBugs to 4.8.4 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 5179a79860..c06d3849dc 100644 --- a/build.properties.default +++ b/build.properties.default @@ -271,10 +271,10 @@ jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip # - SpotBugs (originally FindBugs) - -spotbugs.version=4.8.3 +spotbugs.version=4.8.4 spotbugs.checksum.enabled=true spotbugs.checksum.algorithm=SHA-512 -spotbugs.checksum.value=cf12a31f67d07e4da7d0e8ec7b3e9abcc891aae62af5e95a91c27f1f29470042d9b5d57e2cb2ec2aa07349313661e41b51de8442b17ec972b1f066bb36e77603 +spotbugs.checksum.value=3bdd417e4cd8e451ccc7d6fa41940d22038cb4558af9d1919f7c1eb6e442158fa11c53620ee471ed5550c7ea33930cab283c66513a28bc8d744919bac9510f8f spotbugs.home=${base.path}/spotbugs-${spotbugs.version} spotbugs.jar=${spotbugs.home}/lib/spotbugs-ant.jar spotbugs.loc=${base-maven.loc}/com/github/spotbugs/spotbugs/${spotbugs.version}/spotbugs-${spotbugs.version}.tgz diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index e191919ef3..5e3a82cd9f 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -229,6 +229,9 @@ Update JaCoCo to 0.8.12. (markt) + +Update SpotBugs to 4.8.4. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Update JacoCo to 0.8.12
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 3c9d4338b4 Update JacoCo to 0.8.12 3c9d4338b4 is described below commit 3c9d4338b4ef04b5edb045435e6535d9675c32ae Author: Mark Thomas AuthorDate: Mon Apr 29 10:11:07 2024 +0100 Update JacoCo to 0.8.12 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 2bbd2cc46d..daa0782b31 100644 --- a/build.properties.default +++ b/build.properties.default @@ -285,10 +285,10 @@ checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar # - JaCoCo code coverage tool - -jacoco.version=0.8.11 +jacoco.version=0.8.12 jacoco.checksum.enabled=true jacoco.checksum.algorithm=MD5|SHA-1 -jacoco.checksum.value=2e4992dc1d63a86cdcb5084f9a5b8ebc|027b1d840385543736a3a2c3652fa67ba39025d2 +jacoco.checksum.value=a85698213c36c6c964b1d4011a5f8770|c77282468d7e311b7e3e4b03dc9a8c7837902b4b jacoco.home=${base.path}/jacoco-${jacoco.version} jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index a9b962f839..2e2b5f2a79 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -211,6 +211,9 @@ Update Checkstyle to 10.16.0. (markt) + +Update JaCoCo to 0.8.12. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Update JacoCo to 0.8.12
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new f7fb972247 Update JacoCo to 0.8.12 f7fb972247 is described below commit f7fb972247248ba8dc6e1f7b658fec6c3ae5de8c Author: Mark Thomas AuthorDate: Mon Apr 29 10:11:07 2024 +0100 Update JacoCo to 0.8.12 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 23140edf83..7258f7d22f 100644 --- a/build.properties.default +++ b/build.properties.default @@ -283,10 +283,10 @@ checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar # - JaCoCo code coverage tool - -jacoco.version=0.8.11 +jacoco.version=0.8.12 jacoco.checksum.enabled=true jacoco.checksum.algorithm=MD5|SHA-1 -jacoco.checksum.value=2e4992dc1d63a86cdcb5084f9a5b8ebc|027b1d840385543736a3a2c3652fa67ba39025d2 +jacoco.checksum.value=a85698213c36c6c964b1d4011a5f8770|c77282468d7e311b7e3e4b03dc9a8c7837902b4b jacoco.home=${base.path}/jacoco-${jacoco.version} jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index d5eda808c3..d37056e4f8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -202,6 +202,9 @@ Update Checkstyle to 10.16.0. (markt) + +Update JaCoCo to 0.8.12. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Update JacoCo to 0.8.12
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new fb40bc5514 Update JacoCo to 0.8.12 fb40bc5514 is described below commit fb40bc5514c636dfd10fb76d5c3c3efe218a6797 Author: Mark Thomas AuthorDate: Mon Apr 29 10:11:07 2024 +0100 Update JacoCo to 0.8.12 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 06fcfcc6e3..5179a79860 100644 --- a/build.properties.default +++ b/build.properties.default @@ -262,10 +262,10 @@ checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar # - JaCoCo code coverage tool - -jacoco.version=0.8.11 +jacoco.version=0.8.12 jacoco.checksum.enabled=true jacoco.checksum.algorithm=MD5|SHA-1 -jacoco.checksum.value=2e4992dc1d63a86cdcb5084f9a5b8ebc|027b1d840385543736a3a2c3652fa67ba39025d2 +jacoco.checksum.value=a85698213c36c6c964b1d4011a5f8770|c77282468d7e311b7e3e4b03dc9a8c7837902b4b jacoco.home=${base.path}/jacoco-${jacoco.version} jacoco.jar=${jacoco.home}/lib/jacocoant.jar jacoco.loc=${base-maven.loc}/org/jacoco/jacoco/${jacoco.version}/jacoco-${jacoco.version}.zip diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index cb4964209d..e191919ef3 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -226,6 +226,9 @@ Update Checkstyle to 10.16.0. (markt) + +Update JaCoCo to 0.8.12. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Update Checkstyle to 10.16.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new e5c2ab5ac9 Update Checkstyle to 10.16.0 e5c2ab5ac9 is described below commit e5c2ab5ac9e06da804bf9b4cf11abe2b21386199 Author: Mark Thomas AuthorDate: Mon Apr 29 09:43:29 2024 +0100 Update Checkstyle to 10.16.0 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 57d88220ec..2bbd2cc46d 100644 --- a/build.properties.default +++ b/build.properties.default @@ -276,10 +276,10 @@ unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar # - Checkstyle, version 6.16 or later - -checkstyle.version=10.14.1 +checkstyle.version=10.16.0 checkstyle.checksum.enabled=true checkstyle.checksum.algorithm=SHA-512 -checkstyle.checksum.value=59c734883c7770429ef5f977f4139724da86caa932fb365a186e1bf47b5a6e04c718c1dba8ed383c0979a594586c608af1aa30bbec6f4c444c08c3009473e245 +checkstyle.checksum.value=a5bc5d725ddb3125c602385221f15c085d6f5244e36d5dc8b661f7adfa864c7bfcf0c68444632e75669a94d79fdf54173d38908b9f4612eb748619cb3d256142 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 87c809e603..a9b962f839 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -208,6 +208,9 @@ Update UnboundID to 7.0.0. (markt) + +Update Checkstyle to 10.16.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Update Checkstyle to 10.16.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 094e2ef8cb Update Checkstyle to 10.16.0 094e2ef8cb is described below commit 094e2ef8cb9a72def4f176b25f5c3eacbb5e29c9 Author: Mark Thomas AuthorDate: Mon Apr 29 09:43:29 2024 +0100 Update Checkstyle to 10.16.0 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 4d437ed6de..06fcfcc6e3 100644 --- a/build.properties.default +++ b/build.properties.default @@ -253,10 +253,10 @@ unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar # - Checkstyle, version 6.16 or later - -checkstyle.version=10.14.1 +checkstyle.version=10.16.0 checkstyle.checksum.enabled=true checkstyle.checksum.algorithm=SHA-512 -checkstyle.checksum.value=59c734883c7770429ef5f977f4139724da86caa932fb365a186e1bf47b5a6e04c718c1dba8ed383c0979a594586c608af1aa30bbec6f4c444c08c3009473e245 +checkstyle.checksum.value=a5bc5d725ddb3125c602385221f15c085d6f5244e36d5dc8b661f7adfa864c7bfcf0c68444632e75669a94d79fdf54173d38908b9f4612eb748619cb3d256142 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 64136599c8..cb4964209d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -223,6 +223,9 @@ Update UnboundID to 7.0.0. (markt) + +Update Checkstyle to 10.16.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Update Checkstyle to 10.16.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new e27b6f7eca Update Checkstyle to 10.16.0 e27b6f7eca is described below commit e27b6f7ecaee669daddb79fa3d961184d654db8f Author: Mark Thomas AuthorDate: Mon Apr 29 09:43:29 2024 +0100 Update Checkstyle to 10.16.0 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index 3be83fc3b9..23140edf83 100644 --- a/build.properties.default +++ b/build.properties.default @@ -274,10 +274,10 @@ unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar # - Checkstyle, version 6.16 or later - -checkstyle.version=10.14.1 +checkstyle.version=10.16.0 checkstyle.checksum.enabled=true checkstyle.checksum.algorithm=SHA-512 -checkstyle.checksum.value=59c734883c7770429ef5f977f4139724da86caa932fb365a186e1bf47b5a6e04c718c1dba8ed383c0979a594586c608af1aa30bbec6f4c444c08c3009473e245 +checkstyle.checksum.value=a5bc5d725ddb3125c602385221f15c085d6f5244e36d5dc8b661f7adfa864c7bfcf0c68444632e75669a94d79fdf54173d38908b9f4612eb748619cb3d256142 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar checkstyle.loc=${base-gh.loc}/checkstyle/checkstyle/releases/download/checkstyle-${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 89b7b4aa52..d5eda808c3 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -199,6 +199,9 @@ Update UnboundID to 7.0.0. (markt) + +Update Checkstyle to 10.16.0. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Update UnboundID to 7.0.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 6fb4a5483e Update UnboundID to 7.0.0 6fb4a5483e is described below commit 6fb4a5483e9df45a9c34e8298803f0aa304d6de5 Author: Mark Thomas AuthorDate: Mon Apr 29 09:38:00 2024 +0100 Update UnboundID to 7.0.0 Note: Minimum Java version is now Java 8 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index e2b755477c..57d88220ec 100644 --- a/build.properties.default +++ b/build.properties.default @@ -267,10 +267,10 @@ objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar objenesis.loc=${base-maven.loc}/org/objenesis/objenesis/${objenesis.version}/objenesis-${objenesis.version}.jar # - UnboundID, used by unit tests, version 5.1.4 or later - -unboundid.version=6.0.11 +unboundid.version=7.0.0 unboundid.checksum.enabled=true unboundid.checksum.algorithm=SHA-512 -unboundid.checksum.value=4bb1dc4adef77fd124d1b184556c44b44945fc69f62662c62f46cff9a6792c24ed385c6a01854797ec069df42286ba51b3d1e3c7a6ee9ee4a3e69908850ffa36 +unboundid.checksum.value=e9f9d1f5b954ab6939d5bf799f399a26896271547cc1fd061bb2710dc83d8ff6ae0d2fadf3062eccd8717ff0891c92fc871acfcefdf09c0fe8fa36018d609e5e unboundid.home=${base.path}/unboundid-${unboundid.version} unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index e647e0b1d7..87c809e603 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -203,7 +203,10 @@ (markt) -Update NSIS to 3.10. (markt) +Update NSIS to 3.10. (mark0t) + + +Update UnboundID to 7.0.0. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Update UnboundID to 7.0.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 4cf3c2c5aa Update UnboundID to 7.0.0 4cf3c2c5aa is described below commit 4cf3c2c5aa4abe0670c5e28fb9d9e77599b00517 Author: Mark Thomas AuthorDate: Mon Apr 29 09:38:00 2024 +0100 Update UnboundID to 7.0.0 Note: Minimum Java version is now Java 8 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index 60e7779b1c..3be83fc3b9 100644 --- a/build.properties.default +++ b/build.properties.default @@ -265,10 +265,10 @@ objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar objenesis.loc=${base-maven.loc}/org/objenesis/objenesis/${objenesis.version}/objenesis-${objenesis.version}.jar # - UnboundID, used by unit tests, version 5.1.4 or later - -unboundid.version=6.0.11 +unboundid.version=7.0.0 unboundid.checksum.enabled=true unboundid.checksum.algorithm=SHA-512 -unboundid.checksum.value=4bb1dc4adef77fd124d1b184556c44b44945fc69f62662c62f46cff9a6792c24ed385c6a01854797ec069df42286ba51b3d1e3c7a6ee9ee4a3e69908850ffa36 +unboundid.checksum.value=e9f9d1f5b954ab6939d5bf799f399a26896271547cc1fd061bb2710dc83d8ff6ae0d2fadf3062eccd8717ff0891c92fc871acfcefdf09c0fe8fa36018d609e5e unboundid.home=${base.path}/unboundid-${unboundid.version} unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 01a670555d..89b7b4aa52 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -194,7 +194,10 @@ (markt) -Update NSIS to 3.10. (markt) +Update NSIS to 3.10. (mark0t) + + +Update UnboundID to 7.0.0. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Update UnboundID to 7.0.0
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new e93ec0dba3 Update UnboundID to 7.0.0 e93ec0dba3 is described below commit e93ec0dba3098a7b1ec523e4e61298fcc798f6ad Author: Mark Thomas AuthorDate: Mon Apr 29 09:38:00 2024 +0100 Update UnboundID to 7.0.0 Note: Minimum Java version is now Java 8 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index 8e4a467ca0..4d437ed6de 100644 --- a/build.properties.default +++ b/build.properties.default @@ -244,10 +244,10 @@ objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar objenesis.loc=${base-maven.loc}/org/objenesis/objenesis/${objenesis.version}/objenesis-${objenesis.version}.jar # - UnboundID, used by unit tests, version 5.1.4 or later - -unboundid.version=6.0.11 +unboundid.version=7.0.0 unboundid.checksum.enabled=true unboundid.checksum.algorithm=SHA-512 -unboundid.checksum.value=4bb1dc4adef77fd124d1b184556c44b44945fc69f62662c62f46cff9a6792c24ed385c6a01854797ec069df42286ba51b3d1e3c7a6ee9ee4a3e69908850ffa36 +unboundid.checksum.value=e9f9d1f5b954ab6939d5bf799f399a26896271547cc1fd061bb2710dc83d8ff6ae0d2fadf3062eccd8717ff0891c92fc871acfcefdf09c0fe8fa36018d609e5e unboundid.home=${base.path}/unboundid-${unboundid.version} unboundid.jar=${unboundid.home}/unboundid-ldapsdk-${unboundid.version}.jar unboundid.loc=${base-maven.loc}/com/unboundid/unboundid-ldapsdk/${unboundid.version}/unboundid-ldapsdk-${unboundid.version}.jar diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 32cf59621c..64136599c8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -218,7 +218,10 @@ Update to the Eclipse JDT compiler 4.31. (markt) -Update NSIS to 3.10. (markt) +Update NSIS to 3.10. (mark0t) + + +Update UnboundID to 7.0.0. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Update NSIS to 3.10
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 611613cf62 Update NSIS to 3.10 611613cf62 is described below commit 611613cf62de17121130c96369e6974c446016ef Author: Mark Thomas AuthorDate: Mon Apr 29 09:25:31 2024 +0100 Update NSIS to 3.10 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index b597c46e56..e2b755477c 100644 --- a/build.properties.default +++ b/build.properties.default @@ -178,10 +178,10 @@ tomcat-native.win.1=${base-tomcat.loc.1}/tomcat-connectors/native/${tomcat-nativ tomcat-native.win.2=${base-tomcat.loc.2}/tomcat-connectors/native/${tomcat-native.version}/binaries/tomcat-native-${tomcat-native.version}-openssl-${tomcat-native-openssl.version}-win32-bin.zip # - NSIS, version 3.0 or later - -nsis.version=3.09 +nsis.version=3.10 nsis.checksum.enabled=true nsis.checksum.algorithm=MD5|SHA-1 -nsis.checksum.value=2953f6074bcc4711b439a666eafbb91b|586855a743a6e0ade203d8758af303a48ee0716b +nsis.checksum.value=e3e2803a13ead75e4471a51069d04c20|22cf776b463c6c845444328341219167abf399dc nsis.home=${base.path}/nsis-${nsis.version} nsis.exe=${nsis.home}/makensis.exe nsis.arch.dir=x86-unicode/ diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index dbf0c637a8..e647e0b1d7 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -202,6 +202,9 @@ Commons Codec has been deprecated and will be removed in Tomcat 11. (markt) + +Update NSIS to 3.10. (markt) + @@ -1089,7 +1092,7 @@ Contributed by Michal Sobkiewicz. (schultz) -Update NSIS to 3.0.9. (markt) +Update NSIS to 3.09. (markt) Update Checkstyle to 10.12.2. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Update NSIS to 3.10
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 2a396de267 Update NSIS to 3.10 2a396de267 is described below commit 2a396de2673d7f9d0125909144fb4046af826e79 Author: Mark Thomas AuthorDate: Mon Apr 29 09:25:31 2024 +0100 Update NSIS to 3.10 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index 9a6764c453..60e7779b1c 100644 --- a/build.properties.default +++ b/build.properties.default @@ -176,10 +176,10 @@ tomcat-native.win.1=${base-tomcat.loc.1}/tomcat-connectors/native/${tomcat-nativ tomcat-native.win.2=${base-tomcat.loc.2}/tomcat-connectors/native/${tomcat-native.version}/binaries/tomcat-native-${tomcat-native.version}-openssl-${tomcat-native-openssl.version}-win32-bin.zip # - NSIS, version 3.0 or later - -nsis.version=3.09 +nsis.version=3.10 nsis.checksum.enabled=true nsis.checksum.algorithm=MD5|SHA-1 -nsis.checksum.value=2953f6074bcc4711b439a666eafbb91b|586855a743a6e0ade203d8758af303a48ee0716b +nsis.checksum.value=e3e2803a13ead75e4471a51069d04c20|22cf776b463c6c845444328341219167abf399dc nsis.home=${base.path}/nsis-${nsis.version} nsis.exe=${nsis.home}/makensis.exe nsis.arch.dir=x86-unicode/ diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index f736ed04db..01a670555d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -193,6 +193,9 @@ Commons Codec has been deprecated and will be removed in Tomcat 11. (markt) + +Update NSIS to 3.10. (markt) + @@ -1129,7 +1132,7 @@ -Update NSIS to 3.0.9. (markt) +Update NSIS to 3.09. (markt) Update Checkstyle to 10.12.2. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Update NSIS to 3.10
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 0af751f84d Update NSIS to 3.10 0af751f84d is described below commit 0af751f84d53745cee83cbc36287cd2000cdb64a Author: Mark Thomas AuthorDate: Mon Apr 29 09:25:31 2024 +0100 Update NSIS to 3.10 --- build.properties.default | 4 ++-- webapps/docs/changelog.xml | 5 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.properties.default b/build.properties.default index a1fc6e5f17..8e4a467ca0 100644 --- a/build.properties.default +++ b/build.properties.default @@ -155,10 +155,10 @@ tomcat-native.win.1=${base-tomcat.loc.1}/tomcat-connectors/native/${tomcat-nativ tomcat-native.win.2=${base-tomcat.loc.2}/tomcat-connectors/native/${tomcat-native.version}/binaries/tomcat-native-${tomcat-native.version}-openssl-${tomcat-native-openssl.version}-win32-bin.zip # - NSIS, version 3.0 or later - -nsis.version=3.09 +nsis.version=3.10 nsis.checksum.enabled=true nsis.checksum.algorithm=MD5|SHA-1 -nsis.checksum.value=2953f6074bcc4711b439a666eafbb91b|586855a743a6e0ade203d8758af303a48ee0716b +nsis.checksum.value=e3e2803a13ead75e4471a51069d04c20|22cf776b463c6c845444328341219167abf399dc nsis.home=${base.path}/nsis-${nsis.version} nsis.exe=${nsis.home}/makensis.exe nsis.arch.dir=x86-unicode/ diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 53f60a70d2..32cf59621c 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -217,6 +217,9 @@ Update to the Eclipse JDT compiler 4.31. (markt) + +Update NSIS to 3.10. (markt) + @@ -1254,7 +1257,7 @@ -Update NSIS to 3.0.9. (markt) +Update NSIS to 3.09. (markt) Update Checkstyle to 10.12.2. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Add support for Java 23
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 29c214ce03 Add support for Java 23 29c214ce03 is described below commit 29c214ce03a6184e616090c43df27a7938b64eb8 Author: Mark Thomas AuthorDate: Mon Apr 29 09:03:32 2024 +0100 Add support for Java 23 --- java/org/apache/jasper/compiler/JDTCompiler.java | 11 +++ webapps/docs/changelog.xml | 11 +++ 2 files changed, 22 insertions(+) diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java index c0d2573321..979b552fef 100644 --- a/java/org/apache/jasper/compiler/JDTCompiler.java +++ b/java/org/apache/jasper/compiler/JDTCompiler.java @@ -341,6 +341,11 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { // Java 8. // This is checked against the actual version below. settings.put(CompilerOptions.OPTION_Source, "22"); +} else if (opt.equals("23")) { +// Constant not available in latest ECJ version that runs on +// Java 8. +// This is checked against the actual version below. +settings.put(CompilerOptions.OPTION_Source, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.sourceVM", opt)); settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_8); @@ -435,6 +440,12 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { // This is checked against the actual version below. settings.put(CompilerOptions.OPTION_TargetPlatform, "22"); settings.put(CompilerOptions.OPTION_Compliance, "22"); +} else if (opt.equals("23")) { +// Constant not available in latest ECJ version that runs on +// Java 8. +// This is checked against the actual version below. +settings.put(CompilerOptions.OPTION_TargetPlatform, "23"); +settings.put(CompilerOptions.OPTION_Compliance, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.targetVM", opt)); settings.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index a944a64d85..dbf0c637a8 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -183,6 +183,17 @@ + + + +Add support for specifying Java 23 (with the value 23) as +the compiler source and/or compiler target for JSP compilation. If used +with an Eclipse JDT compiler version that does not support these values, +a warning will be logged and the default will used. +(markt) + + + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Fix comment
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new abcdaa6a3a Fix comment abcdaa6a3a is described below commit abcdaa6a3a6233c0e568a3125c0e702aa73e3ab8 Author: Mark Thomas AuthorDate: Mon Apr 29 09:08:35 2024 +0100 Fix comment --- java/org/apache/jasper/compiler/JDTCompiler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java index e34a911166..5231a4e1eb 100644 --- a/java/org/apache/jasper/compiler/JDTCompiler.java +++ b/java/org/apache/jasper/compiler/JDTCompiler.java @@ -423,8 +423,8 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { settings.put(CompilerOptions.OPTION_TargetPlatform, "22"); settings.put(CompilerOptions.OPTION_Compliance, "22"); } else if (opt.equals("23")) { -// Constant not available in latest ECJ version shipped with -// Tomcat. May be supported in a snapshot build. +// Constant not available in latest ECJ version that runs on +// Java 11. // This is checked against the actual version below. settings.put(CompilerOptions.OPTION_TargetPlatform, "23"); settings.put(CompilerOptions.OPTION_Compliance, "23"); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Add support for Java 23
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new f8ea6383c2 Add support for Java 23 f8ea6383c2 is described below commit f8ea6383c2e9c93f2e2bd748331a55524ac98374 Author: Mark Thomas AuthorDate: Mon Apr 29 09:03:32 2024 +0100 Add support for Java 23 --- java/org/apache/jasper/compiler/JDTCompiler.java | 11 +++ webapps/docs/changelog.xml | 11 +++ 2 files changed, 22 insertions(+) diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java index 2179f3a7e7..e34a911166 100644 --- a/java/org/apache/jasper/compiler/JDTCompiler.java +++ b/java/org/apache/jasper/compiler/JDTCompiler.java @@ -332,6 +332,11 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { // Java 11. // This is checked against the actual version below. settings.put(CompilerOptions.OPTION_Source, "22"); +} else if (opt.equals("23")) { +// Constant not available in latest ECJ version that runs on +// Java 11. +// This is checked against the actual version below. +settings.put(CompilerOptions.OPTION_Source, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.sourceVM", opt)); settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_11); @@ -417,6 +422,12 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { // This is checked against the actual version below. settings.put(CompilerOptions.OPTION_TargetPlatform, "22"); settings.put(CompilerOptions.OPTION_Compliance, "22"); +} else if (opt.equals("23")) { +// Constant not available in latest ECJ version shipped with +// Tomcat. May be supported in a snapshot build. +// This is checked against the actual version below. +settings.put(CompilerOptions.OPTION_TargetPlatform, "23"); +settings.put(CompilerOptions.OPTION_Compliance, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.targetVM", opt)); settings.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_11); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index b022f03249..f736ed04db 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -174,6 +174,17 @@ + + + +Add support for specifying Java 23 (with the value 23) as +the compiler source and/or compiler target for JSP compilation. If used +with an Eclipse JDT compiler version that does not support these values, +a warning will be logged and the default will used. +(markt) + + + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/02: Add support for Java 23
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 096e13459dc74760510d3abe2102810cb7566c1c Author: Mark Thomas AuthorDate: Mon Apr 29 09:03:32 2024 +0100 Add support for Java 23 --- java/org/apache/jasper/compiler/JDTCompiler.java | 11 --- webapps/docs/changelog.xml | 11 +++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java index 16bf7060f7..e5b5d1a278 100644 --- a/java/org/apache/jasper/compiler/JDTCompiler.java +++ b/java/org/apache/jasper/compiler/JDTCompiler.java @@ -322,10 +322,12 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { } else if (opt.equals("21")) { settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_21); } else if (opt.equals("22")) { +settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_22); +} else if (opt.equals("23")) { // Constant not available in latest ECJ version shipped with // Tomcat. May be supported in a snapshot build. // This is checked against the actual version below. -settings.put(CompilerOptions.OPTION_Source, "22"); +settings.put(CompilerOptions.OPTION_Source, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.sourceVM", opt)); settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_17); @@ -400,11 +402,14 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler { settings.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_21); settings.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_21); } else if (opt.equals("22")) { +settings.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_22); +settings.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_22); +} else if (opt.equals("23")) { // Constant not available in latest ECJ version shipped with // Tomcat. May be supported in a snapshot build. // This is checked against the actual version below. -settings.put(CompilerOptions.OPTION_TargetPlatform, "22"); -settings.put(CompilerOptions.OPTION_Compliance, "22"); +settings.put(CompilerOptions.OPTION_TargetPlatform, "23"); +settings.put(CompilerOptions.OPTION_Compliance, "23"); } else { log.warn(Localizer.getMessage("jsp.warning.unknown.targetVM", opt)); settings.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_17); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 6e0838465d..53f60a70d2 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -196,6 +196,17 @@ + + + +Add support for specifying Java 23 (with the value 23) as +the compiler source and/or compiler target for JSP compilation. If used +with an Eclipse JDT compiler version that does not support these values, +a warning will be logged and the default will used. +(markt) + + + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated (e9046d96a6 -> 096e13459d)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from e9046d96a6 Add support for timescales with time-taken access log token. (#721) new 85cc21837a Update JDT to 4.31 (March 2024) new 096e13459d Add support for Java 23 The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: build.properties.default | 12 ++-- java/org/apache/jasper/compiler/JDTCompiler.java | 11 --- res/maven/tomcat-jasper.pom | 2 +- webapps/docs/changelog.xml | 14 ++ 4 files changed, 29 insertions(+), 10 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/02: Update JDT to 4.31 (March 2024)
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 85cc21837a80e55cc508724f27b18fa85b4a1922 Author: Mark Thomas AuthorDate: Mon Apr 29 09:03:17 2024 +0100 Update JDT to 4.31 (March 2024) --- build.properties.default| 12 ++-- res/maven/tomcat-jasper.pom | 2 +- webapps/docs/changelog.xml | 3 +++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/build.properties.default b/build.properties.default index 0d6d7cabdc..a1fc6e5f17 100644 --- a/build.properties.default +++ b/build.properties.default @@ -123,15 +123,15 @@ base-maven.loc=https://repo.maven.apache.org/maven2 # - Eclipse JDT, version 4.7 or later -# # See https://cwiki.apache.org/confluence/display/TOMCAT/Managing+Tomcat%27s+Dependency+on+the+Eclipse+JDT+Core+Batch+Compiler # -# Checksum is from "SHA512 Checksums for 4.30" link at -# https://download.eclipse.org/eclipse/downloads/drops4/R-4.30-202312010110/ -# https://download.eclipse.org/eclipse/downloads/drops4/R-4.30-202312010110/checksum/eclipse-4.30-SUMSSHA512 +# Checksum is from "SHA512 Checksums for 4.31" link at +# https://download.eclipse.org/eclipse/downloads/drops4/R-4.31-202402290520/ +# https://download.eclipse.org/eclipse/downloads/drops4/R-4.31-202402290520/checksum/eclipse-4.31-SUMSSHA512 # -jdt.version=4.30 -jdt.release=R-4.30-202312010110 +jdt.version=4.31 +jdt.release=R-4.31-202402290520 jdt.checksum.enabled=true jdt.checksum.algorithm=SHA-512 -jdt.checksum.value=f889b0f305cdf6b548e13ef73cd8ec488be3bf43a3d48659a1fcfce01068fb47adb398bb6006a067d61cfefbee7ecc279e4fcea385f27be211817709cdebc54e +jdt.checksum.value=1f31bea2297013601ba7a3e0a8c65d7b621601c106fe10bf2a11af625d63aa0772941fa029fb392cd9fe2314203e6ef7e04a94dc938e15961108494139fae3e8 jdt.home=${base.path}/ecj-${jdt.version} jdt.jar=${jdt.home}/ecj-${jdt.version}.jar # The download will be moved to the archive area eventually. We are taking care of that in advance. diff --git a/res/maven/tomcat-jasper.pom b/res/maven/tomcat-jasper.pom index fd97e2a35f..6976884efa 100644 --- a/res/maven/tomcat-jasper.pom +++ b/res/maven/tomcat-jasper.pom @@ -60,7 +60,7 @@ org.eclipse.jdt ecj - 3.36.0 + 3.37.0 org.apache.tomcat diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index cc82d7932b..6e0838465d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -203,6 +203,9 @@ rather than the version provided by Commons Codec. This removes the internal fork of Commons Codec. (markt) + +Update to the Eclipse JDT compiler 4.31. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 05/05: Fix disastrous cookie-logging patch.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit fa0cb106e2d13edca9f2c8d038b913d2ae539a0c Author: Christopher Schultz AuthorDate: Fri Apr 19 10:16:36 2024 -0400 Fix disastrous cookie-logging patch. --- java/org/apache/catalina/valves/AbstractAccessLogValve.java | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java index 7a9c83d849..ca3a90e2e8 100644 --- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java +++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java @@ -1489,17 +1489,19 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access if (cookies != null) { for (Cookie cookie : cookies) { if (cookieNameToLog.equals(cookie.getName())) { +if (value == null) { +value = new StringBuilder(); +} if (first) { first = false; } else { value.append(','); } -value = new StringBuilder(); value.append(cookie.getValue()); } } } -if (value.length() == 0) { +if (value == null) { buf.append('-'); } else { escapeAndAppend(value.toString(), buf); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/05: Add a method to filter the parsed headers.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit b31efad19216282c43635099f3c6d02fad4d8df6 Author: Mark Thomas AuthorDate: Fri Apr 26 15:46:32 2024 +0100 Add a method to filter the parsed headers. This will (eventually) be used by the refactored trailer header parsing --- java/org/apache/tomcat/util/http/MimeHeaders.java | 16 1 file changed, 16 insertions(+) diff --git a/java/org/apache/tomcat/util/http/MimeHeaders.java b/java/org/apache/tomcat/util/http/MimeHeaders.java index 48ec279a09..5a67d76f7a 100644 --- a/java/org/apache/tomcat/util/http/MimeHeaders.java +++ b/java/org/apache/tomcat/util/http/MimeHeaders.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.buf.StringUtils; @@ -167,6 +168,21 @@ public class MimeHeaders { } +public void filter(Set allowedHeaders) { +int j = -1; +for (int i = 0; i < count; i++) { +String name = headers[i].getName().toStringType(); +if (allowedHeaders.contains(name)) { +++j; +if (j != i) { +headers[j] = headers[i]; +} +} +} +count = ++j; +} + + public void duplicate(MimeHeaders source) throws IOException { for (int i = 0; i < source.size(); i++) { MimeHeaderField mhf = createHeader(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated (4d23ff3142 -> fa0cb106e2)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 4d23ff3142 Remove redundant override javadoc new b31efad192 Add a method to filter the parsed headers. new e87a432f88 Add a common header parser for headers and trailers new f75509c443 Refactor chunked input filter to use common HTTP header/trailer parser new 7e8fd4350e Additional tests for non-blocking chunked reads new fa0cb106e2 Fix disastrous cookie-logging patch. The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../catalina/valves/AbstractAccessLogValve.java| 6 +- java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - java/org/apache/tomcat/util/http/MimeHeaders.java | 16 + .../tomcat/util/http/parser/HttpHeaderParser.java | 409 +++ .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + .../catalina/nonblocking/TestNonBlockingAPI.java | 442 +++- .../http11/filters/TestChunkedInputFilter.java | 176 ++- webapps/docs/changelog.xml | 3 + 11 files changed, 1256 insertions(+), 381 deletions(-) create mode 100644 java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 04/05: Additional tests for non-blocking chunked reads
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 7e8fd4350e2922c282d92787b08392d1e2949992 Author: Mark Thomas AuthorDate: Fri Apr 26 16:02:09 2024 +0100 Additional tests for non-blocking chunked reads --- .../catalina/nonblocking/TestNonBlockingAPI.java | 442 - .../http11/filters/TestChunkedInputFilter.java | 176 +++- 2 files changed, 587 insertions(+), 31 deletions(-) diff --git a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java index 1df7859c2d..e451835a72 100644 --- a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java +++ b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java @@ -72,6 +72,9 @@ public class TestNonBlockingAPI extends TomcatBaseTest { private static final Log log = LogFactory.getLog(TestNonBlockingAPI.class); +private static String TRAILER_HEADER_NAME = "x-test"; +private static String TRAILER_HEADER_VALUE = "abcde"; + private static final int CHUNK_SIZE = 1024 * 1024; private static final int WRITE_SIZE = CHUNK_SIZE * 10; private static final byte[] DATA = new byte[WRITE_SIZE]; @@ -130,7 +133,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest { // No file system docBase required Context ctx = getProgrammaticRootContext(); -NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async); +NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async, null); String servletName = NBReadServlet.class.getName(); Tomcat.addServlet(ctx, servletName, servlet); ctx.addServletMappingDecoded("/", servletName); @@ -154,31 +157,416 @@ public class TestNonBlockingAPI extends TomcatBaseTest { @Test -public void testNonBlockingReadChunked() throws Exception { +public void testNonBlockingReadChunkedNoSplits() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeChunkHeader() throws Exception { +String[] requestBody = new String[] { +"", +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInChunkHeader() throws Exception { +String[] requestBody = new String[] { +"1", +"4" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterChunkHeader() throws Exception { +String[] requestBody = new String[] { +"14", +SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14\r", +"\n" + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF, +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeExtensionDelimter() throws Exception { +String[] requestBody = new String[] { +"14", +";a=b" + SimpleHttpClient.CRLF + +"012345678901FINIS
(tomcat) 03/05: Refactor chunked input filter to use common HTTP header/trailer parser
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit f75509c4439dacf21b065c8d2965169dab5d50bf Author: Mark Thomas AuthorDate: Fri Apr 26 15:58:37 2024 +0100 Refactor chunked input filter to use common HTTP header/trailer parser This adds non-blocking read support for chunked request bodies --- java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - webapps/docs/changelog.xml | 3 + 3 files changed, 233 insertions(+), 348 deletions(-) diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 7c5ca6176e..37afea55fe 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -168,7 +168,7 @@ public class Http11Processor extends AbstractProcessor { // Create and add the chunked filters. inputBuffer.addFilter( -new ChunkedInputFilter(protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), +new ChunkedInputFilter(request, protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), protocol.getMaxExtensionSize(), protocol.getMaxSwallowSize())); outputBuffer.addFilter(new ChunkedOutputFilter()); diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java index 741cd1078b..f350487771 100644 --- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java @@ -16,11 +16,9 @@ */ package org.apache.coyote.http11.filters; -import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.util.Locale; import java.util.Set; import org.apache.coyote.ActionCode; @@ -31,8 +29,9 @@ import org.apache.coyote.http11.Constants; import org.apache.coyote.http11.InputFilter; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.HexUtils; -import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.http.parser.HttpParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderDataSource; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderParseStatus; import org.apache.tomcat.util.net.ApplicationBufferHandler; import org.apache.tomcat.util.res.StringManager; @@ -42,7 +41,7 @@ import org.apache.tomcat.util.res.StringManager; * * @author Remy Maucherat */ -public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler { +public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler, HeaderDataSource { private static final StringManager sm = StringManager.getManager(ChunkedInputFilter.class); @@ -82,28 +81,15 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler /** - * Flag set to true when the end chunk has been read. + * Buffer used to store trailing headers. Is normally in read mode. */ -protected boolean endChunk = false; - - -/** - * Byte chunk used to store trailing headers. - */ -protected final ByteChunk trailingHeaders = new ByteChunk(); - - -/** - * Flag set to true if the next call to doRead() must parse a CRLF pair - * before doing anything else. - */ -protected boolean needCRLFParse = false; +protected final ByteBuffer trailingHeaders; /** * Request being parsed. */ -private Request request; +private final Request request; /** @@ -112,38 +98,31 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler private final long maxExtensionSize; -/** - * Limit for trailer size. - */ -private final int maxTrailerSize; - - -/** - * Size of extensions processed for this request. - */ -private long extensionSize; - - private final int maxSwallowSize; +private final Set allowedTrailerHeaders; -/** - * Flag that indicates if an error has occurred. +/* + * Parsing state. */ -private boolean error; - - -private final Set allowedTrailerHeaders; +private volatile ParseState parseState = ParseState.CHUNK_HEADER; +private volatile boolean crFound = false; +private volatile int chunkSizeDigitsRead = 0; +private volatile boolean parsingExtension = false; +private volatile long extensionSize; +private final HttpHeaderParser httpHeaderParser; // --- Constructors -public ChunkedInputFilter(int
(tomcat) 02/05: Add a common header parser for headers and trailers
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit e87a432f88663064f066509b53977da2fa2a9bd9 Author: Mark Thomas AuthorDate: Fri Apr 26 15:47:23 2024 +0100 Add a common header parser for headers and trailers --- .../tomcat/util/http/parser/HttpHeaderParser.java | 409 + .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + 4 files changed, 416 insertions(+) diff --git a/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java new file mode 100644 index 00..7ef3b8b5ee --- /dev/null +++ b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java @@ -0,0 +1,409 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.http.parser; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import org.apache.tomcat.util.buf.MessageBytes; +import org.apache.tomcat.util.http.HeaderUtil; +import org.apache.tomcat.util.http.MimeHeaders; +import org.apache.tomcat.util.res.StringManager; + +public class HttpHeaderParser { + +private static final StringManager sm = StringManager.getManager(HttpHeaderParser.class); + +private static final byte CR = (byte) '\r'; +private static final byte LF = (byte) '\n'; +private static final byte SP = (byte) ' '; +private static final byte HT = (byte) '\t'; +private static final byte COLON = (byte) ':'; +private static final byte A = (byte) 'A'; +private static final byte a = (byte) 'a'; +private static final byte Z = (byte) 'Z'; +private static final byte LC_OFFSET = A - a; + +private final HeaderDataSource source; +private final MimeHeaders headers; +private final boolean tolerantEol; +private final HeaderParseData headerData = new HeaderParseData(); + +private HeaderParsePosition headerParsePos = HeaderParsePosition.HEADER_START; +private byte prevChr = 0; +private byte chr = 0; + + +public HttpHeaderParser(HeaderDataSource source, MimeHeaders headers, boolean tolerantEol) { +this.source = source; +this.headers = headers; +this.tolerantEol = tolerantEol; +} + + +public void recycle() { +chr = 0; +prevChr = 0; +headerParsePos = HeaderParsePosition.HEADER_START; +headerData.recycle(); +} + + +/** + * Parse an HTTP header. + * + * @return One of {@link HeaderParseStatus#NEED_MORE_DATA}, {@link HeaderParseStatus#HAVE_MORE_HEADERS} or + * {@link HeaderParseStatus#DONE}. + * + * @throws IOException If an error occurs during the parsing of the headers + */ +public HeaderParseStatus parseHeader() throws IOException { + +while (headerParsePos == HeaderParsePosition.HEADER_START) { + +// Read new bytes if needed +if (source.getHeaderByteBuffer().position() >= source.getHeaderByteBuffer().limit()) { +if (!source.fillHeaderBuffer()) { +return HeaderParseStatus.NEED_MORE_DATA; +} +} + +prevChr = chr; +chr = source.getHeaderByteBuffer().get(); + +if (chr == CR && prevChr != CR) { +// Possible start of CRLF - process the next byte. +} else if (chr == LF) { +if (!tolerantEol && prevChr != CR) { +throw new IllegalArgumentException(sm.getString("httpHeaderParser.invalidCrlfNoCR")); +} +return HeaderParseStatus.DONE; +} else { +if (prevChr == CR) { +// Must have read two bytes (first was CR, second was not LF) + source.getHeaderByteBuffer().position(source.getHeaderByteBuffer().position() - 2); +} else { +// Must have only read one byte + source.getHeade
(tomcat) branch 10.1.x updated: Fix disastrous cookie-logging patch.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 783815fd94 Fix disastrous cookie-logging patch. 783815fd94 is described below commit 783815fd940a4ac2f6d7df7bd056e071f54d7de6 Author: Christopher Schultz AuthorDate: Fri Apr 19 10:16:36 2024 -0400 Fix disastrous cookie-logging patch. --- java/org/apache/catalina/valves/AbstractAccessLogValve.java | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java index 03acb492fa..5c4e67dde6 100644 --- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java +++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java @@ -1515,17 +1515,19 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access if (cookies != null) { for (Cookie cookie : cookies) { if (cookieNameToLog.equals(cookie.getName())) { +if (value == null) { +value = new StringBuilder(); +} if (first) { first = false; } else { value.append(','); } -value = new StringBuilder(); value.append(cookie.getValue()); } } } -if (value.length() == 0) { +if (value == null) { buf.append('-'); } else { escapeAndAppend(value.toString(), buf); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/04: Refactor chunked input filter to use common HTTP header/trailer parser
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 92e3c7a7adc574a859ab70333bf930561dcf1e9d Author: Mark Thomas AuthorDate: Fri Apr 26 15:58:37 2024 +0100 Refactor chunked input filter to use common HTTP header/trailer parser This adds non-blocking read support for chunked request bodies --- java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - webapps/docs/changelog.xml | 3 + 3 files changed, 233 insertions(+), 348 deletions(-) diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 0692b8da4e..c75243e369 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -169,7 +169,7 @@ public class Http11Processor extends AbstractProcessor { // Create and add the chunked filters. inputBuffer.addFilter( -new ChunkedInputFilter(protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), +new ChunkedInputFilter(request, protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), protocol.getMaxExtensionSize(), protocol.getMaxSwallowSize())); outputBuffer.addFilter(new ChunkedOutputFilter()); diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java index 741cd1078b..f350487771 100644 --- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java @@ -16,11 +16,9 @@ */ package org.apache.coyote.http11.filters; -import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.util.Locale; import java.util.Set; import org.apache.coyote.ActionCode; @@ -31,8 +29,9 @@ import org.apache.coyote.http11.Constants; import org.apache.coyote.http11.InputFilter; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.HexUtils; -import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.http.parser.HttpParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderDataSource; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderParseStatus; import org.apache.tomcat.util.net.ApplicationBufferHandler; import org.apache.tomcat.util.res.StringManager; @@ -42,7 +41,7 @@ import org.apache.tomcat.util.res.StringManager; * * @author Remy Maucherat */ -public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler { +public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler, HeaderDataSource { private static final StringManager sm = StringManager.getManager(ChunkedInputFilter.class); @@ -82,28 +81,15 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler /** - * Flag set to true when the end chunk has been read. + * Buffer used to store trailing headers. Is normally in read mode. */ -protected boolean endChunk = false; - - -/** - * Byte chunk used to store trailing headers. - */ -protected final ByteChunk trailingHeaders = new ByteChunk(); - - -/** - * Flag set to true if the next call to doRead() must parse a CRLF pair - * before doing anything else. - */ -protected boolean needCRLFParse = false; +protected final ByteBuffer trailingHeaders; /** * Request being parsed. */ -private Request request; +private final Request request; /** @@ -112,38 +98,31 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler private final long maxExtensionSize; -/** - * Limit for trailer size. - */ -private final int maxTrailerSize; - - -/** - * Size of extensions processed for this request. - */ -private long extensionSize; - - private final int maxSwallowSize; +private final Set allowedTrailerHeaders; -/** - * Flag that indicates if an error has occurred. +/* + * Parsing state. */ -private boolean error; - - -private final Set allowedTrailerHeaders; +private volatile ParseState parseState = ParseState.CHUNK_HEADER; +private volatile boolean crFound = false; +private volatile int chunkSizeDigitsRead = 0; +private volatile boolean parsingExtension = false; +private volatile long extensionSize; +private final HttpHeaderParser httpHeaderParser; // --- Constructors -public ChunkedInputFilter(int
(tomcat) 04/04: Additional tests for non-blocking chunked reads
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 24a1932b51f77d8935e690dead32a643b45273f9 Author: Mark Thomas AuthorDate: Fri Apr 26 16:02:09 2024 +0100 Additional tests for non-blocking chunked reads --- .../catalina/nonblocking/TestNonBlockingAPI.java | 442 - .../http11/filters/TestChunkedInputFilter.java | 176 +++- 2 files changed, 587 insertions(+), 31 deletions(-) diff --git a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java index eca6090712..7840c56c98 100644 --- a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java +++ b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java @@ -73,6 +73,9 @@ public class TestNonBlockingAPI extends TomcatBaseTest { private static final Log log = LogFactory.getLog(TestNonBlockingAPI.class); +private static String TRAILER_HEADER_NAME = "x-test"; +private static String TRAILER_HEADER_VALUE = "abcde"; + private static final int CHUNK_SIZE = 1024 * 1024; private static final int WRITE_SIZE = CHUNK_SIZE * 10; private static final byte[] DATA = new byte[WRITE_SIZE]; @@ -131,7 +134,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest { // No file system docBase required Context ctx = getProgrammaticRootContext(); -NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async); +NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async, null); String servletName = NBReadServlet.class.getName(); Tomcat.addServlet(ctx, servletName, servlet); ctx.addServletMappingDecoded("/", servletName); @@ -155,31 +158,416 @@ public class TestNonBlockingAPI extends TomcatBaseTest { @Test -public void testNonBlockingReadChunked() throws Exception { +public void testNonBlockingReadChunkedNoSplits() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeChunkHeader() throws Exception { +String[] requestBody = new String[] { +"", +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInChunkHeader() throws Exception { +String[] requestBody = new String[] { +"1", +"4" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterChunkHeader() throws Exception { +String[] requestBody = new String[] { +"14", +SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14\r", +"\n" + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF, +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeExtensionDelimter() throws Exception { +String[] requestBody = new String[] { +"14", +";a=b" + SimpleHttpClient.CRLF + +"012345678901FINIS
(tomcat) branch 10.1.x updated (4e92dc6044 -> 24a1932b51)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git from 4e92dc6044 Remove redundant override javadoc new a13938a854 Add a method to filter the parsed headers. new a5a7c11250 Add a common header parser for headers and trailers new 92e3c7a7ad Refactor chunked input filter to use common HTTP header/trailer parser new 24a1932b51 Additional tests for non-blocking chunked reads The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - java/org/apache/tomcat/util/http/MimeHeaders.java | 16 + .../tomcat/util/http/parser/HttpHeaderParser.java | 409 +++ .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + .../catalina/nonblocking/TestNonBlockingAPI.java | 442 +++- .../http11/filters/TestChunkedInputFilter.java | 176 ++- webapps/docs/changelog.xml | 3 + 10 files changed, 1252 insertions(+), 379 deletions(-) create mode 100644 java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/04: Add a method to filter the parsed headers.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a13938a854c8f8c86c07acc314b5bfed39a62290 Author: Mark Thomas AuthorDate: Fri Apr 26 15:46:32 2024 +0100 Add a method to filter the parsed headers. This will (eventually) be used by the refactored trailer header parsing --- java/org/apache/tomcat/util/http/MimeHeaders.java | 16 1 file changed, 16 insertions(+) diff --git a/java/org/apache/tomcat/util/http/MimeHeaders.java b/java/org/apache/tomcat/util/http/MimeHeaders.java index 48ec279a09..5a67d76f7a 100644 --- a/java/org/apache/tomcat/util/http/MimeHeaders.java +++ b/java/org/apache/tomcat/util/http/MimeHeaders.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.buf.StringUtils; @@ -167,6 +168,21 @@ public class MimeHeaders { } +public void filter(Set allowedHeaders) { +int j = -1; +for (int i = 0; i < count; i++) { +String name = headers[i].getName().toStringType(); +if (allowedHeaders.contains(name)) { +++j; +if (j != i) { +headers[j] = headers[i]; +} +} +} +count = ++j; +} + + public void duplicate(MimeHeaders source) throws IOException { for (int i = 0; i < source.size(); i++) { MimeHeaderField mhf = createHeader(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/04: Add a common header parser for headers and trailers
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a5a7c112505b471e943967fd33c72299cbe6bb9f Author: Mark Thomas AuthorDate: Fri Apr 26 15:47:23 2024 +0100 Add a common header parser for headers and trailers --- .../tomcat/util/http/parser/HttpHeaderParser.java | 409 + .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + 4 files changed, 416 insertions(+) diff --git a/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java new file mode 100644 index 00..7ef3b8b5ee --- /dev/null +++ b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java @@ -0,0 +1,409 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.http.parser; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import org.apache.tomcat.util.buf.MessageBytes; +import org.apache.tomcat.util.http.HeaderUtil; +import org.apache.tomcat.util.http.MimeHeaders; +import org.apache.tomcat.util.res.StringManager; + +public class HttpHeaderParser { + +private static final StringManager sm = StringManager.getManager(HttpHeaderParser.class); + +private static final byte CR = (byte) '\r'; +private static final byte LF = (byte) '\n'; +private static final byte SP = (byte) ' '; +private static final byte HT = (byte) '\t'; +private static final byte COLON = (byte) ':'; +private static final byte A = (byte) 'A'; +private static final byte a = (byte) 'a'; +private static final byte Z = (byte) 'Z'; +private static final byte LC_OFFSET = A - a; + +private final HeaderDataSource source; +private final MimeHeaders headers; +private final boolean tolerantEol; +private final HeaderParseData headerData = new HeaderParseData(); + +private HeaderParsePosition headerParsePos = HeaderParsePosition.HEADER_START; +private byte prevChr = 0; +private byte chr = 0; + + +public HttpHeaderParser(HeaderDataSource source, MimeHeaders headers, boolean tolerantEol) { +this.source = source; +this.headers = headers; +this.tolerantEol = tolerantEol; +} + + +public void recycle() { +chr = 0; +prevChr = 0; +headerParsePos = HeaderParsePosition.HEADER_START; +headerData.recycle(); +} + + +/** + * Parse an HTTP header. + * + * @return One of {@link HeaderParseStatus#NEED_MORE_DATA}, {@link HeaderParseStatus#HAVE_MORE_HEADERS} or + * {@link HeaderParseStatus#DONE}. + * + * @throws IOException If an error occurs during the parsing of the headers + */ +public HeaderParseStatus parseHeader() throws IOException { + +while (headerParsePos == HeaderParsePosition.HEADER_START) { + +// Read new bytes if needed +if (source.getHeaderByteBuffer().position() >= source.getHeaderByteBuffer().limit()) { +if (!source.fillHeaderBuffer()) { +return HeaderParseStatus.NEED_MORE_DATA; +} +} + +prevChr = chr; +chr = source.getHeaderByteBuffer().get(); + +if (chr == CR && prevChr != CR) { +// Possible start of CRLF - process the next byte. +} else if (chr == LF) { +if (!tolerantEol && prevChr != CR) { +throw new IllegalArgumentException(sm.getString("httpHeaderParser.invalidCrlfNoCR")); +} +return HeaderParseStatus.DONE; +} else { +if (prevChr == CR) { +// Must have read two bytes (first was CR, second was not LF) + source.getHeaderByteBuffer().position(source.getHeaderByteBuffer().position() - 2); +} else { +// Must have only read one byte + source.getHeade
(tomcat) 02/03: Refactor HTTP header parsing to use common parser
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit e5acf2cf0f745350c85d81532826d92b1882469a Author: Mark Thomas AuthorDate: Fri Apr 26 16:06:52 2024 +0100 Refactor HTTP header parsing to use common parser --- java/org/apache/coyote/http11/Constants.java | 12 + .../apache/coyote/http11/Http11InputBuffer.java| 375 ++--- .../apache/coyote/http11/LocalStrings.properties | 2 - .../coyote/http11/LocalStrings_fr.properties | 2 - .../coyote/http11/LocalStrings_ja.properties | 2 - .../coyote/http11/LocalStrings_ko.properties | 1 - .../coyote/http11/LocalStrings_zh_CN.properties| 1 - webapps/docs/changelog.xml | 3 + 8 files changed, 43 insertions(+), 355 deletions(-) diff --git a/java/org/apache/coyote/http11/Constants.java b/java/org/apache/coyote/http11/Constants.java index 700834c7ad..b580819b28 100644 --- a/java/org/apache/coyote/http11/Constants.java +++ b/java/org/apache/coyote/http11/Constants.java @@ -72,19 +72,28 @@ public final class Constants { /** * 'A'. + * + * @deprecated Unused. Will be removed in Tomcat 11. */ +@Deprecated public static final byte A = (byte) 'A'; /** * 'a'. + * + * @deprecated Unused. Will be removed in Tomcat 11. */ +@Deprecated public static final byte a = (byte) 'a'; /** * 'Z'. + * + * @deprecated Unused. Will be removed in Tomcat 11. */ +@Deprecated public static final byte Z = (byte) 'Z'; @@ -96,7 +105,10 @@ public final class Constants { /** * Lower case offset. + * + * @deprecated Unused. Will be removed in Tomcat 11. */ +@Deprecated public static final byte LC_OFFSET = A - a; diff --git a/java/org/apache/coyote/http11/Http11InputBuffer.java b/java/org/apache/coyote/http11/Http11InputBuffer.java index fea3b2fe46..c047a26701 100644 --- a/java/org/apache/coyote/http11/Http11InputBuffer.java +++ b/java/org/apache/coyote/http11/Http11InputBuffer.java @@ -27,9 +27,10 @@ import org.apache.coyote.InputBuffer; import org.apache.coyote.Request; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; -import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.HeaderUtil; -import org.apache.tomcat.util.http.MimeHeaders; +import org.apache.tomcat.util.http.parser.HttpHeaderParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderDataSource; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderParseStatus; import org.apache.tomcat.util.http.parser.HttpParser; import org.apache.tomcat.util.net.ApplicationBufferHandler; import org.apache.tomcat.util.net.SocketWrapperBase; @@ -38,7 +39,7 @@ import org.apache.tomcat.util.res.StringManager; /** * InputBuffer for HTTP that provides request header parsing as well as transfer encoding. */ -public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler { +public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler, HeaderDataSource { // -- Constants @@ -59,12 +60,6 @@ public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler private final Request request; -/** - * Headers of the associated request. - */ -private final MimeHeaders headers; - - /** * State. */ @@ -129,9 +124,8 @@ public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler private boolean parsingRequestLineEol = false; private int parsingRequestLineStart = 0; private int parsingRequestLineQPos = -1; -private HeaderParsePosition headerParsePos; -private final HeaderParseData headerData = new HeaderParseData(); private final HttpParser httpParser; +private final HttpHeaderParser httpHeaderParser; /** * Maximum allowed size of the HTTP request line plus headers plus any leading blank lines. @@ -149,7 +143,6 @@ public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler public Http11InputBuffer(Request request, int headerBufferSize, HttpParser httpParser) { this.request = request; -headers = request.getMimeHeaders(); this.headerBufferSize = headerBufferSize; this.httpParser = httpParser; @@ -158,13 +151,15 @@ public class Http11InputBuffer implements InputBuffer, ApplicationBufferHandler activeFilters = new InputFilter[0]; lastActiveFilter = -1; -parsingHeader = true; parsingRequestLine = true; parsingRequestLinePhase = 0; parsingRequestLineEol = false; parsingRequestLineStart = 0; parsingRequestLineQPos = -1; -headerParsePos
(tomcat) 01/03: Add changelog entry
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit a5c31c0f14c7598c3574df1159f560b01d3f9fba Author: Mark Thomas AuthorDate: Fri Apr 26 16:49:32 2024 +0100 Add changelog entry --- webapps/docs/changelog.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 46f409d856..044a6a19fc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -183,6 +183,9 @@ Ensure that multiple instances of the same trailer field are handled correctly. (markt) + +Fix non-blocking reads of chunked request bodies. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 03/03: Remove deprecated code
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 8081af2086a89618a75a7091835fe56d2fc19364 Author: Mark Thomas AuthorDate: Fri Apr 26 16:07:21 2024 +0100 Remove deprecated code --- java/org/apache/coyote/http11/Constants.java | 36 1 file changed, 36 deletions(-) diff --git a/java/org/apache/coyote/http11/Constants.java b/java/org/apache/coyote/http11/Constants.java index b580819b28..7831aa5494 100644 --- a/java/org/apache/coyote/http11/Constants.java +++ b/java/org/apache/coyote/http11/Constants.java @@ -70,48 +70,12 @@ public final class Constants { public static final byte SEMI_COLON = (byte) ';'; -/** - * 'A'. - * - * @deprecated Unused. Will be removed in Tomcat 11. - */ -@Deprecated -public static final byte A = (byte) 'A'; - - -/** - * 'a'. - * - * @deprecated Unused. Will be removed in Tomcat 11. - */ -@Deprecated -public static final byte a = (byte) 'a'; - - -/** - * 'Z'. - * - * @deprecated Unused. Will be removed in Tomcat 11. - */ -@Deprecated -public static final byte Z = (byte) 'Z'; - - /** * '?'. */ public static final byte QUESTION = (byte) '?'; -/** - * Lower case offset. - * - * @deprecated Unused. Will be removed in Tomcat 11. - */ -@Deprecated -public static final byte LC_OFFSET = A - a; - - /* Various constant "strings" */ public static final String CONNECTION = "Connection"; public static final String CLOSE = "close"; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated (8d6420831f -> 8081af2086)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from 8d6420831f Fix test failure on Windows new a5c31c0f14 Add changelog entry new e5acf2cf0f Refactor HTTP header parsing to use common parser new 8081af2086 Remove deprecated code The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/coyote/http11/Constants.java | 24 -- .../apache/coyote/http11/Http11InputBuffer.java| 375 ++--- .../apache/coyote/http11/LocalStrings.properties | 2 - .../coyote/http11/LocalStrings_fr.properties | 2 - .../coyote/http11/LocalStrings_ja.properties | 2 - .../coyote/http11/LocalStrings_ko.properties | 1 - .../coyote/http11/LocalStrings_zh_CN.properties| 1 - webapps/docs/changelog.xml | 6 + 8 files changed, 34 insertions(+), 379 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Fix test failure on Windows
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 8d6420831f Fix test failure on Windows 8d6420831f is described below commit 8d6420831f071e5ceefedbd8f692764b3836fbeb Author: Mark Thomas AuthorDate: Fri Apr 26 17:04:07 2024 +0100 Fix test failure on Windows --- test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java b/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java index 9a44b02b08..b264092ed0 100644 --- a/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java +++ b/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java @@ -697,7 +697,11 @@ public class TestChunkedInputFilter extends TomcatBaseTest { client.setRequest(request); client.connect(); -client.processRequest(); +try { +client.processRequest(); +} catch (IOException ioe) { +// Ignore - Triggered by connection being dropped after error +} // NIO2 may (will?) return null here String responseLine = client.getResponseLine(); if (responseLine == null) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 01/04: Add a method to filter the parsed headers.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 43622a07488a297dbd8ad4d0c72d2ff4d8c24f90 Author: Mark Thomas AuthorDate: Fri Apr 26 15:46:32 2024 +0100 Add a method to filter the parsed headers. This will (eventually) be used by the refactored trailer header parsing --- java/org/apache/tomcat/util/http/MimeHeaders.java | 16 1 file changed, 16 insertions(+) diff --git a/java/org/apache/tomcat/util/http/MimeHeaders.java b/java/org/apache/tomcat/util/http/MimeHeaders.java index cfc419199c..43b089451d 100644 --- a/java/org/apache/tomcat/util/http/MimeHeaders.java +++ b/java/org/apache/tomcat/util/http/MimeHeaders.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.buf.StringUtils; @@ -162,6 +163,21 @@ public class MimeHeaders { } +public void filter(Set allowedHeaders) { +int j = -1; +for (int i = 0; i < count; i++) { +String name = headers[i].getName().toStringType(); +if (allowedHeaders.contains(name)) { +++j; +if (j != i) { +headers[j] = headers[i]; +} +} +} +count = ++j; +} + + public void duplicate(MimeHeaders source) throws IOException { for (int i = 0; i < source.size(); i++) { MimeHeaderField mhf = createHeader(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated (c1664157ce -> b25db176fb)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git from c1664157ce Remove redundant override javadoc new 43622a0748 Add a method to filter the parsed headers. new 3443bffb40 Add a common header parser for headers and trailers new cbed8e1836 Refactor chunked input filter to use common HTTP header/trailer parser new b25db176fb Additional tests for non-blocking chunked reads The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - java/org/apache/tomcat/util/http/MimeHeaders.java | 16 + .../tomcat/util/http/parser/HttpHeaderParser.java | 409 +++ .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + .../catalina/nonblocking/TestNonBlockingAPI.java | 442 +++- .../http11/filters/TestChunkedInputFilter.java | 172 +- 9 files changed, 1245 insertions(+), 379 deletions(-) create mode 100644 java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) 02/04: Add a common header parser for headers and trailers
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit 3443bffb40c22b2c107e277575e02f9f4e688e3d Author: Mark Thomas AuthorDate: Fri Apr 26 15:47:23 2024 +0100 Add a common header parser for headers and trailers --- .../tomcat/util/http/parser/HttpHeaderParser.java | 409 + .../util/http/parser/LocalStrings.properties | 3 + .../util/http/parser/LocalStrings_fr.properties| 2 + .../util/http/parser/LocalStrings_ja.properties| 2 + 4 files changed, 416 insertions(+) diff --git a/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java new file mode 100644 index 00..7ef3b8b5ee --- /dev/null +++ b/java/org/apache/tomcat/util/http/parser/HttpHeaderParser.java @@ -0,0 +1,409 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.http.parser; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import org.apache.tomcat.util.buf.MessageBytes; +import org.apache.tomcat.util.http.HeaderUtil; +import org.apache.tomcat.util.http.MimeHeaders; +import org.apache.tomcat.util.res.StringManager; + +public class HttpHeaderParser { + +private static final StringManager sm = StringManager.getManager(HttpHeaderParser.class); + +private static final byte CR = (byte) '\r'; +private static final byte LF = (byte) '\n'; +private static final byte SP = (byte) ' '; +private static final byte HT = (byte) '\t'; +private static final byte COLON = (byte) ':'; +private static final byte A = (byte) 'A'; +private static final byte a = (byte) 'a'; +private static final byte Z = (byte) 'Z'; +private static final byte LC_OFFSET = A - a; + +private final HeaderDataSource source; +private final MimeHeaders headers; +private final boolean tolerantEol; +private final HeaderParseData headerData = new HeaderParseData(); + +private HeaderParsePosition headerParsePos = HeaderParsePosition.HEADER_START; +private byte prevChr = 0; +private byte chr = 0; + + +public HttpHeaderParser(HeaderDataSource source, MimeHeaders headers, boolean tolerantEol) { +this.source = source; +this.headers = headers; +this.tolerantEol = tolerantEol; +} + + +public void recycle() { +chr = 0; +prevChr = 0; +headerParsePos = HeaderParsePosition.HEADER_START; +headerData.recycle(); +} + + +/** + * Parse an HTTP header. + * + * @return One of {@link HeaderParseStatus#NEED_MORE_DATA}, {@link HeaderParseStatus#HAVE_MORE_HEADERS} or + * {@link HeaderParseStatus#DONE}. + * + * @throws IOException If an error occurs during the parsing of the headers + */ +public HeaderParseStatus parseHeader() throws IOException { + +while (headerParsePos == HeaderParsePosition.HEADER_START) { + +// Read new bytes if needed +if (source.getHeaderByteBuffer().position() >= source.getHeaderByteBuffer().limit()) { +if (!source.fillHeaderBuffer()) { +return HeaderParseStatus.NEED_MORE_DATA; +} +} + +prevChr = chr; +chr = source.getHeaderByteBuffer().get(); + +if (chr == CR && prevChr != CR) { +// Possible start of CRLF - process the next byte. +} else if (chr == LF) { +if (!tolerantEol && prevChr != CR) { +throw new IllegalArgumentException(sm.getString("httpHeaderParser.invalidCrlfNoCR")); +} +return HeaderParseStatus.DONE; +} else { +if (prevChr == CR) { +// Must have read two bytes (first was CR, second was not LF) + source.getHeaderByteBuffer().position(source.getHeaderByteBuffer().position() - 2); +} else { +// Must have only read one byte + source.getHeaderByteBuffer
(tomcat) 04/04: Additional tests for non-blocking chunked reads
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit b25db176fb138af7086a1ea5a1473b03b58747e8 Author: Mark Thomas AuthorDate: Fri Apr 26 16:02:09 2024 +0100 Additional tests for non-blocking chunked reads --- .../catalina/nonblocking/TestNonBlockingAPI.java | 442 - .../http11/filters/TestChunkedInputFilter.java | 172 +++- 2 files changed, 583 insertions(+), 31 deletions(-) diff --git a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java index 66fbf2ac12..7402e69645 100644 --- a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java +++ b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java @@ -74,6 +74,9 @@ public class TestNonBlockingAPI extends TomcatBaseTest { private static final Log log = LogFactory.getLog(TestNonBlockingAPI.class); +private static String TRAILER_HEADER_NAME = "x-test"; +private static String TRAILER_HEADER_VALUE = "abcde"; + private static final int CHUNK_SIZE = 1024 * 1024; private static final int WRITE_SIZE = CHUNK_SIZE * 10; private static final byte[] DATA = new byte[WRITE_SIZE]; @@ -132,7 +135,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest { // No file system docBase required Context ctx = getProgrammaticRootContext(); -NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async); +NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async, null); String servletName = NBReadServlet.class.getName(); Tomcat.addServlet(ctx, servletName, servlet); ctx.addServletMappingDecoded("/", servletName); @@ -156,31 +159,416 @@ public class TestNonBlockingAPI extends TomcatBaseTest { @Test -public void testNonBlockingReadChunked() throws Exception { +public void testNonBlockingReadChunkedNoSplits() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeChunkHeader() throws Exception { +String[] requestBody = new String[] { +"", +"14" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInChunkHeader() throws Exception { +String[] requestBody = new String[] { +"1", +"4" + SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterChunkHeader() throws Exception { +String[] requestBody = new String[] { +"14", +SimpleHttpClient.CRLF + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitInHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14\r", +"\n" + +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitAfterHeaderCrlf() throws Exception { +String[] requestBody = new String[] { +"14" + SimpleHttpClient.CRLF, +"012345678901FINISHED" + SimpleHttpClient.CRLF + +"0" + SimpleHttpClient.CRLF + +SimpleHttpClient.CRLF}; + +doTestNonBlockingReadChunked(requestBody); +} + + +@Test +public void testNonBlockingReadChunkedSplitBeforeExtensionDelimter() throws Exception { +String[] requestBody = new String[] { +"14", +";a=b" + SimpleHttpClient.CRLF + +"012345678901FINIS
(tomcat) 03/04: Refactor chunked input filter to use common HTTP header/trailer parser
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git commit cbed8e1836962d43120b81ae99d8d1b349265749 Author: Mark Thomas AuthorDate: Fri Apr 26 15:58:37 2024 +0100 Refactor chunked input filter to use common HTTP header/trailer parser This adds non-blocking read support for chunked request bodies --- java/org/apache/coyote/http11/Http11Processor.java | 2 +- .../coyote/http11/filters/ChunkedInputFilter.java | 576 - 2 files changed, 230 insertions(+), 348 deletions(-) diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 3a1897a84b..b2fac4af8c 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -167,7 +167,7 @@ public class Http11Processor extends AbstractProcessor { // Create and add the chunked filters. inputBuffer.addFilter( -new ChunkedInputFilter(protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), +new ChunkedInputFilter(request, protocol.getMaxTrailerSize(), protocol.getAllowedTrailerHeadersInternal(), protocol.getMaxExtensionSize(), protocol.getMaxSwallowSize())); outputBuffer.addFilter(new ChunkedOutputFilter()); diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java index 741cd1078b..f350487771 100644 --- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java @@ -16,11 +16,9 @@ */ package org.apache.coyote.http11.filters; -import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.util.Locale; import java.util.Set; import org.apache.coyote.ActionCode; @@ -31,8 +29,9 @@ import org.apache.coyote.http11.Constants; import org.apache.coyote.http11.InputFilter; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.HexUtils; -import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.http.parser.HttpParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderDataSource; +import org.apache.tomcat.util.http.parser.HttpHeaderParser.HeaderParseStatus; import org.apache.tomcat.util.net.ApplicationBufferHandler; import org.apache.tomcat.util.res.StringManager; @@ -42,7 +41,7 @@ import org.apache.tomcat.util.res.StringManager; * * @author Remy Maucherat */ -public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler { +public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler, HeaderDataSource { private static final StringManager sm = StringManager.getManager(ChunkedInputFilter.class); @@ -82,28 +81,15 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler /** - * Flag set to true when the end chunk has been read. + * Buffer used to store trailing headers. Is normally in read mode. */ -protected boolean endChunk = false; - - -/** - * Byte chunk used to store trailing headers. - */ -protected final ByteChunk trailingHeaders = new ByteChunk(); - - -/** - * Flag set to true if the next call to doRead() must parse a CRLF pair - * before doing anything else. - */ -protected boolean needCRLFParse = false; +protected final ByteBuffer trailingHeaders; /** * Request being parsed. */ -private Request request; +private final Request request; /** @@ -112,38 +98,31 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler private final long maxExtensionSize; -/** - * Limit for trailer size. - */ -private final int maxTrailerSize; - - -/** - * Size of extensions processed for this request. - */ -private long extensionSize; - - private final int maxSwallowSize; +private final Set allowedTrailerHeaders; -/** - * Flag that indicates if an error has occurred. +/* + * Parsing state. */ -private boolean error; - - -private final Set allowedTrailerHeaders; +private volatile ParseState parseState = ParseState.CHUNK_HEADER; +private volatile boolean crFound = false; +private volatile int chunkSizeDigitsRead = 0; +private volatile boolean parsingExtension = false; +private volatile long extensionSize; +private final HttpHeaderParser httpHeaderParser; // --- Constructors -public ChunkedInputFilter(int maxTrailerSize, Set allowedTrailerHeaders, +public
(tomcat) branch 10.1.x updated: Remove incorrect Javadoc comment
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new aa49b80a35 Remove incorrect Javadoc comment aa49b80a35 is described below commit aa49b80a35ac498d7500281cbf156f0218c18e90 Author: Mark Thomas AuthorDate: Thu Apr 25 18:29:10 2024 +0100 Remove incorrect Javadoc comment --- java/org/apache/coyote/http11/filters/ChunkedInputFilter.java | 4 1 file changed, 4 deletions(-) diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java index 83bccbd161..741cd1078b 100644 --- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java @@ -299,10 +299,6 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler } -/** - * Return the name of the associated encoding; Here, the value is - * "identity". - */ @Override public ByteChunk getEncodingName() { return ENCODING; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Remove incorrect Javadoc comment
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new a8dad1dd05 Remove incorrect Javadoc comment a8dad1dd05 is described below commit a8dad1dd05605ced9288ddede1b71e26234b9799 Author: Mark Thomas AuthorDate: Thu Apr 25 18:29:10 2024 +0100 Remove incorrect Javadoc comment --- java/org/apache/coyote/http11/filters/ChunkedInputFilter.java | 4 1 file changed, 4 deletions(-) diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java index 83bccbd161..741cd1078b 100644 --- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java @@ -299,10 +299,6 @@ public class ChunkedInputFilter implements InputFilter, ApplicationBufferHandler } -/** - * Return the name of the associated encoding; Here, the value is - * "identity". - */ @Override public ByteChunk getEncodingName() { return ENCODING; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org