(tomcat) branch 10.1.x updated (fea6de2b7f -> 9e43198212)

2024-05-03 Thread markt
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)

2024-05-03 Thread markt
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

2024-05-03 Thread markt
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

2024-05-03 Thread markt
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

2024-05-03 Thread markt
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.

2024-05-03 Thread markt
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.

2024-05-03 Thread markt
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

2024-05-03 Thread markt
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.

2024-05-03 Thread markt
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)

2024-05-03 Thread markt
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

2024-05-02 Thread markt
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)

2024-05-02 Thread markt
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.

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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)

2024-05-02 Thread 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

2024-05-02 Thread 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 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)

2024-05-02 Thread 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 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

2024-05-02 Thread 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 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)

2024-05-02 Thread markt
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

2024-05-02 Thread 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 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

2024-05-02 Thread 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


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

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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

2024-05-02 Thread markt
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)

2024-05-02 Thread markt
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

2024-05-01 Thread markt
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

2024-05-01 Thread 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


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

2024-05-01 Thread markt
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

2024-05-01 Thread markt
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

2024-05-01 Thread 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


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

2024-05-01 Thread markt
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

2024-05-01 Thread markt
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

2024-05-01 Thread markt
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)

2024-05-01 Thread markt
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

2024-05-01 Thread 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 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

2024-05-01 Thread 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 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)

2024-05-01 Thread markt
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)

2024-05-01 Thread markt
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

2024-05-01 Thread markt
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

2024-05-01 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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)

2024-04-29 Thread markt
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

2024-04-29 Thread 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 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

2024-04-29 Thread 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 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

2024-04-29 Thread 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 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)

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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)

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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

2024-04-29 Thread markt
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

2024-04-29 Thread 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


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

2024-04-29 Thread 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


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

2024-04-29 Thread markt
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)

2024-04-29 Thread markt
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)

2024-04-29 Thread markt
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.

2024-04-26 Thread markt
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.

2024-04-26 Thread markt
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)

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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.

2024-04-26 Thread 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


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

2024-04-26 Thread 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 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

2024-04-26 Thread 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 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)

2024-04-26 Thread markt
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.

2024-04-26 Thread 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 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

2024-04-26 Thread 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 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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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)

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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.

2024-04-26 Thread markt
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)

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread markt
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

2024-04-26 Thread 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


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

2024-04-26 Thread markt
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



<    1   2   3   4   5   6   7   8   9   10   >