[VOTE][RESULT] Release Apache Tomcat 9.0.72

2023-02-23 Thread Rémy Maucherat
The following votes were cast:

Binding:
+1: isapir, fschumacher, markt, remm

Non-binding:
+1: lihan

No other votes were cast. The vote therefore passes.

Thanks to everyone who contributed to this release.

Rémy

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r60268 - /dev/tomcat/tomcat-9/v9.0.72/ /release/tomcat/tomcat-9/v9.0.72/

2023-02-23 Thread remm
Author: remm
Date: Thu Feb 23 09:15:02 2023
New Revision: 60268

Log:
Release Apache Tomcat 9.0.72

Added:
release/tomcat/tomcat-9/v9.0.72/
  - copied from r60267, dev/tomcat/tomcat-9/v9.0.72/
Removed:
dev/tomcat/tomcat-9/v9.0.72/


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1907823 - in /tomcat/site/trunk: ./ docs/ xdocs/

2023-02-23 Thread remm
Author: remm
Date: Thu Feb 23 09:27:28 2023
New Revision: 1907823

URL: http://svn.apache.org/viewvc?rev=1907823&view=rev
Log:
Update site for 9.0.72 release

Modified:
tomcat/site/trunk/build.properties.default
tomcat/site/trunk/docs/doap_Tomcat.rdf
tomcat/site/trunk/docs/download-90.html
tomcat/site/trunk/docs/index.html
tomcat/site/trunk/docs/migration-9.html
tomcat/site/trunk/docs/oldnews.html
tomcat/site/trunk/docs/whichversion.html
tomcat/site/trunk/xdocs/doap_Tomcat.rdf
tomcat/site/trunk/xdocs/download-90.xml
tomcat/site/trunk/xdocs/index.xml
tomcat/site/trunk/xdocs/migration-9.xml
tomcat/site/trunk/xdocs/oldnews.xml
tomcat/site/trunk/xdocs/whichversion.xml

Modified: tomcat/site/trunk/build.properties.default
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/build.properties.default?rev=1907823&r1=1907822&r2=1907823&view=diff
==
--- tomcat/site/trunk/build.properties.default (original)
+++ tomcat/site/trunk/build.properties.default Thu Feb 23 09:27:28 2023
@@ -37,7 +37,7 @@ tomcat.loc=https://downloads.apache.org/
 
 # - Tomcat versions -
 tomcat8.5=8.5.85
-tomcat9.0=9.0.71
+tomcat9.0=9.0.72
 tomcat10.0=10.0.27
 tomcat10.1=10.1.5
 tomcat11.0=11.0.0-M1

Modified: tomcat/site/trunk/docs/doap_Tomcat.rdf
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/doap_Tomcat.rdf?rev=1907823&r1=1907822&r2=1907823&view=diff
==
--- tomcat/site/trunk/docs/doap_Tomcat.rdf (original)
+++ tomcat/site/trunk/docs/doap_Tomcat.rdf Thu Feb 23 09:27:28 2023
@@ -74,8 +74,8 @@
 
   
 Latest Stable 9.0.x Release
-2023-01-13
-9.0.71
+2023-02-23
+9.0.72
   
 
 

Modified: tomcat/site/trunk/docs/download-90.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-90.html?rev=1907823&r1=1907822&r2=1907823&view=diff
==
--- tomcat/site/trunk/docs/download-90.html (original)
+++ tomcat/site/trunk/docs/download-90.html Thu Feb 23 09:27:28 2023
@@ -10,7 +10,7 @@
 
   Quick Navigation
 
-[define v]9.0.71[end]
+[define v]9.0.72[end]
 https://downloads.apache.org/tomcat/tomcat-9/KEYS";>KEYS |
 [v] |
 Browse |

Modified: tomcat/site/trunk/docs/index.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/index.html?rev=1907823&r1=1907822&r2=1907823&view=diff
==
--- tomcat/site/trunk/docs/index.html (original)
+++ tomcat/site/trunk/docs/index.html Thu Feb 23 09:27:28 2023
@@ -34,6 +34,29 @@ wiki page.
 Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat
 project logo are trademarks of the Apache Software Foundation.
 
+2023-02-23 Tomcat 9.0.72 Released
+
+The Apache Tomcat Project is proud to announce the release of version 9.0.72
+of Apache Tomcat. This release implements specifications that are part of the
+Java EE 8 platform. The notable changes compared to 9.0.71 include:
+
+Add an error report valve that allows redirecting to or proxying from an
+   external web server.
+Log basic information for each configured TLS certificate when
+   Tomcat starts.
+Add the shared address space specified by RFC 6598 (100.64.0.0/10)
+   to the list of trusted proxies for RemoteIPValve/Filter.
+Limit access to examples web application to localhost by default.
+
+
+Full details of these changes, and all the other changes, are available in the
+Tomcat 9
+changelog.
+
+
+
+https://tomcat.apache.org/download-90.cgi";>Download
+
 2023-02-13 Tomcat Native 2.0.3 Released
 
 The Apache Tomcat Project is proud to announce the release of version 2.0.3 of
@@ -135,35 +158,6 @@ changelog.
 
 https://tomcat.apache.org/download-10.cgi";>Download
 
-2023-01-13 Tomcat 9.0.71 Released
-
-The Apache Tomcat Project is proud to announce the release of version 9.0.71
-of Apache Tomcat. This release implements specifications that are part of the
-Java EE 8 platform. The notable changes compared to 9.0.70 include:
-
-Correct a regression in the refactoring that replaced the use of the
-   URL constructors. The regression broke lookups for resources that
-   contained one or more characters in their name that required escaping
-   when used in a URI path.
-When resetting an HTTP/2 stream because the final response has been
-   generated before the request has been fully read, use the HTTP/2 error
-   code NO_ERROR so that client does not discard the response. Based on a
-   suggestion by Lorenzo Dalla Vecchia.
-Change the default of the org.apache.el.GET_CLASSLOADER_USE_PRIVILEGED
-   system property to true unless the EL library is running on Tomcat in
-   which case the default remains false as the EL library is already
-   called from within a privileged block and skipping the 

svn commit: r1907824 - in /tomcat/site/trunk/docs/tomcat-9.0-doc: ./ annotationapi/ annotationapi/javax/annotation/ annotationapi/javax/annotation/security/ annotationapi/javax/annotation/sql/ api/ ap

2023-02-23 Thread remm
Author: remm
Date: Thu Feb 23 09:33:36 2023
New Revision: 1907824

URL: http://svn.apache.org/viewvc?rev=1907824&view=rev
Log:
Docs update for 9.0.72


[This commit notification would consist of 112 parts, 
which exceeds the limit of 50 ones, so it was shortened to the summary.]

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1907825 - /tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html

2023-02-23 Thread remm
Author: remm
Date: Thu Feb 23 09:34:42 2023
New Revision: 1907825

URL: http://svn.apache.org/viewvc?rev=1907825&view=rev
Log:
Docs update for 9.0.72

Added:

tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html?rev=1907825&view=auto
==
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/ProxyErrorReportValve.html
 Thu Feb 23 09:34:42 2023
@@ -0,0 +1,553 @@
+
+
+
+
+
+ProxyErrorReportValve (Apache Tomcat 9.0.72 API Documentation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+Skip navigation links
+
+
+
+
+Overview
+Package
+Class
+Tree
+Deprecated
+Index
+Help
+
+Apache Tomcat 9.0.72
+
+
+
+All Classes
+
+
+SEARCH:
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+Summary: 
+Nested | 
+Field | 
+Constr | 
+Method
+
+
+Detail: 
+Field | 
+Constr | 
+Method
+
+
+
+
+
+
+
+ 
+
+
+
+
+
+
+
+Package org.apache.catalina.valves
+Class 
ProxyErrorReportValve
+
+
+
+java.lang.Object
+
+
+org.apache.catalina.util.LifecycleBase
+
+
+org.apache.catalina.util.LifecycleMBeanBase
+
+
+org.apache.catalina.valves.ValveBase
+
+
+org.apache.catalina.valves.ErrorReportValve
+
+
+org.apache.catalina.valves.ProxyErrorReportValve
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+javax.management.MBeanRegistration, Contained, JmxEnabled, Lifecycle, Valve
+
+
+public class ProxyErrorReportValve
+extends ErrorReportValve
+
+ Implementation of a Valve that proxies or redirects error reporting to other 
urls.
+ 
+ 
+ This Valve should be attached at the Host level, although it will work if 
attached to a Context.
+ 
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+Nested classes/interfaces inherited from 
interface org.apache.catalina.Lifecycle
+Lifecycle.SingleUse
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+Fields 
+
+Modifier and Type
+Field
+Description
+
+
+protected boolean
+usePropertiesFile
+
+Use a properties file for the URLs.
+
+
+
+protected boolean
+useRedirect
+
+Use a redirect or proxy the response to the specified 
location.
+
+
+
+
+
+
+
+Fields inherited from class org.apache.catalina.valves.ValveBase
+asyncSupported, container, containerLog, next, sm
+
+
+
+
+
+Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase
+mserver
+
+
+
+
+
+Fields inherited from interface org.apache.catalina.Lifecycle
+AFTER_DESTROY_EVENT, 
AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors 
+
+Constructor
+Description
+
+
+ProxyErrorReportValve()
+ 
+
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Instance Methods Concrete Methods 
+
+Modifier and Type
+Method
+Description
+
+
+boolean
+getUsePropertiesFile()
+ 
+
+
+boolean
+getUseRedirect()
+ 
+
+
+protected void
+report​(Request request,
+  Response response,
+  java.lang.Throwable throwable)
+
+Prints out an error report.
+
+
+
+void
+setUsePropertiesFile​(boolean usePropertiesFile)
+ 
+
+
+void
+setUseRedirect​(boolean useRedirect)
+ 
+
+
+
+
+
+
+Methods inherited from class org.apache.catalina.valves.ErrorReportValve
+findErrorPage,
 getPartialServletStackTrace,
 getProperty, 
invoke,
 isShowReport, isShowServerInfo, setProperty,
 setShowReport, setShowServerInfo
+
+
+
+
+
+Methods inherited from class org.apache.catalina.valves.ValveBase
+backgroundProcess, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties,
 initInternal, isAsyncSupported, setAsyncSupported, setContainer,
 setNex

[tomcat] branch 9.0.x updated: Add 9.0.72 date

2023-02-23 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm 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 eccebb57ff Add 9.0.72 date
eccebb57ff is described below

commit eccebb57ffe2ded122da6ae30ea7192cceada3cb
Author: remm 
AuthorDate: Thu Feb 23 11:03:06 2023 +0100

Add 9.0.72 date
---
 webapps/docs/changelog.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7662464b09..5438c9ee38 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -115,7 +115,7 @@
 
   
 
-
+
   
 
   


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[VOTE][RESULT] Release Apache Tomcat 11.0.0-M3

2023-02-23 Thread Mark Thomas

The following votes were cast:

Binding:
+1: isapir, markt, fschumacher, remm

Non-binding:
+1: lihan, Dimitris Soumis

No other votes were cast.

The release vote therefore passes.

Mark

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] branch main updated: Add release date for 11.0.0-M3

2023-02-23 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 0e892f2f77 Add release date for 11.0.0-M3
0e892f2f77 is described below

commit 0e892f2f7756a42dd063f6f6847a428f9690fc4d
Author: Mark Thomas 
AuthorDate: Thu Feb 23 10:23:41 2023 +

Add release date for 11.0.0-M3
---
 webapps/docs/changelog.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 176b104c6c..ea885486e9 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -126,7 +126,7 @@
 
   
 
-
+
   
 
   


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r60269 - /dev/tomcat/tomcat-11/v11.0.0-M3/ /release/tomcat/tomcat-11/v11.0.0-M3/

2023-02-23 Thread markt
Author: markt
Date: Thu Feb 23 10:25:09 2023
New Revision: 60269

Log:
Release Apache Tomcat 11.0.0-Me (alpha)

Added:
release/tomcat/tomcat-11/v11.0.0-M3/
  - copied from r60268, dev/tomcat/tomcat-11/v11.0.0-M3/
Removed:
dev/tomcat/tomcat-11/v11.0.0-M3/


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1907827 - in /tomcat/site/trunk: ./ docs/tomcat-11.0-doc/ docs/tomcat-11.0-doc/WEB-INF/ docs/tomcat-11.0-doc/annotationapi/ docs/tomcat-11.0-doc/annotationapi/jakarta/annotation/ docs/tom

2023-02-23 Thread markt
Author: markt
Date: Thu Feb 23 11:01:47 2023
New Revision: 1907827

URL: http://svn.apache.org/viewvc?rev=1907827&view=rev
Log:
Update docs for Tomcat 11.0.0-M3


[This commit notification would consist of 1280 parts, 
which exceeds the limit of 50 ones, so it was shortened to the summary.]

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[ANN] Apache Tomcat 9.0.72 available

2023-02-23 Thread Rémy Maucherat
The Apache Tomcat team announces the immediate availability of Apache
Tomcat 9.0.72.

Apache Tomcat 9 is an open source software implementation of the Java
Servlet, JavaServer Pages, Java Unified Expression Language, Java
WebSocket and JASPIC technologies.

Apache Tomcat 9.0.72 is a bugfix and feature release. The notable
changes compared to 9.0.71 include:

- Add an error report valve that allows redirecting to or proxying from an
  external web server.

- Log basic information for each configured TLS certificate when
  Tomcat starts.

- Add the shared address space specified by RFC 6598 (100.64.0.0/10)
   to the list of trusted proxies for RemoteIPValve/Filter.

- Limit access to the examples web application to localhost by default.

Along with lots of other bug fixes and improvements.

Please refer to the change log for the complete list of changes:
https://tomcat.apache.org/tomcat-9.0-doc/changelog.html


Downloads:
https://tomcat.apache.org/download-90.cgi

Migration guides from Apache Tomcat 7.x and 8.x:
https://tomcat.apache.org/migration.html

Enjoy!

- The Apache Tomcat team

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1907829 - in /tomcat/site/trunk: docs/ xdocs/

2023-02-23 Thread markt
Author: markt
Date: Thu Feb 23 13:58:55 2023
New Revision: 1907829

URL: http://svn.apache.org/viewvc?rev=1907829&view=rev
Log:
Update site for 11.0.0-M3 release

Modified:
tomcat/site/trunk/docs/download-11.html
tomcat/site/trunk/docs/index.html
tomcat/site/trunk/docs/migration-11.0.html
tomcat/site/trunk/docs/oldnews-2022.html
tomcat/site/trunk/docs/whichversion.html
tomcat/site/trunk/xdocs/download-11.xml
tomcat/site/trunk/xdocs/index.xml
tomcat/site/trunk/xdocs/migration-11.0.xml
tomcat/site/trunk/xdocs/oldnews-2022.xml
tomcat/site/trunk/xdocs/whichversion.xml

Modified: tomcat/site/trunk/docs/download-11.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-11.html?rev=1907829&r1=1907828&r2=1907829&view=diff
==
--- tomcat/site/trunk/docs/download-11.html (original)
+++ tomcat/site/trunk/docs/download-11.html Thu Feb 23 13:58:55 2023
@@ -19,7 +19,7 @@
 
   Quick Navigation
 
-[define v]11.0.0-M1[end]
+[define v]11.0.0-M3[end]
 https://downloads.apache.org/tomcat/tomcat-11/KEYS";>KEYS |
 [v] (alpha) |
 Browse |

Modified: tomcat/site/trunk/docs/index.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/index.html?rev=1907829&r1=1907828&r2=1907829&view=diff
==
--- tomcat/site/trunk/docs/index.html (original)
+++ tomcat/site/trunk/docs/index.html Thu Feb 23 13:58:55 2023
@@ -57,6 +57,35 @@ changelog.
 
 https://tomcat.apache.org/download-90.cgi";>Download
 
+2023-02-23 Tomcat 11.0.0-M3 Released
+
+The Apache Tomcat Project is proud to announce the release of version 11.0.0-M3
+(alpha) of Apache Tomcat. This release is a milestone release and is targeted 
at
+Jakarta EE 11.
+Users of Tomcat 10 onwards should be aware that, as a result of the move 
from
+Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse
+Foundation, the primary package for all implemented APIs has changed from
+javax.* to jakarta.*. This will almost certainly
+require code changes to enable applications to migrate from Tomcat 9 and 
earlier
+to Tomcat 10 and later. A
+https://github.com/apache/tomcat-jakartaee-migration";>migration
+tool is under development to aid this process.
+The notable changes in this release are:
+
+Increase the minimum supported Java version to Java 17.
+Remove support for starting Tomcat under a SecurityManager.
+Remove JAX-RPC support which was removed from the Jakarta EE platform for
+Jakarta EE 9
+
+
+Full details of these changes, and all the other changes, are available in the
+Tomcat 11
+(alpha) changelog.
+
+
+
+https://tomcat.apache.org/download-11.cgi";>Download
+
 2023-02-13 Tomcat Native 2.0.3 Released
 
 The Apache Tomcat Project is proud to announce the release of version 2.0.3 of
@@ -156,38 +185,6 @@ changelog.
 
 
 
-https://tomcat.apache.org/download-10.cgi";>Download
-
-2022-12-05 Tomcat 11.0.0-M1 Released
-
-The Apache Tomcat Project is proud to announce the release of version 11.0.0-M1
-(alpha) of Apache Tomcat. This release is a milestone release and is targeted 
at
-Jakarta EE 11.
-Users of Tomcat 10 onwards should be aware that, as a result of the move 
from
-Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse
-Foundation, the primary package for all implemented APIs has changed from
-javax.* to jakarta.*. This will almost certainly
-require code changes to enable applications to migrate from Tomcat 9 and 
earlier
-to Tomcat 10 and later. A
-https://github.com/apache/tomcat-jakartaee-migration";>migration
-tool is under development to aid this process.
-The notable changes in this release are:
-
-Alignment with the current development versions of the Jakarta Servlet,
-Pages and Expression Language specifications. This includes removal of
-deprecated code and addition of the jakarta.servlet.error.query_string
-attribute for error dispatches
-BASIC authentication now uses UTF-8 by default
-Conversions from bytes to characters now trigger exceptions rather than
-replacement for invalid byte sequences for the given encoding 
-
-
-Full details of these changes, and all the other changes, are available in the
-Tomcat 11
-(alpha) changelog.
-
-
-
 https://tomcat.apache.org/download-10.cgi";>Download
 
 2022-12-05 Tomcat Migration Tool for Jakarta EE 1.0.6 
Released

Modified: tomcat/site/trunk/docs/migration-11.0.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/migration-11.0.html?rev=1907829&r1=1907828&r2=1907829&view=diff
==
--- tomcat/site/trunk/docs/migration-11.0.html (original)
+++ tomcat/site/trunk/docs/migration-11.0.html Thu Feb 23 13:58:55 2023
@@ -139,11 +139,11 @@ versions of Apache Tomcat.
 Old version:
 
 11.0.0-M1
-11.0.0-M1
+11.0.0-M3
 , new version:
 
 11.0.0-

[ANN] Apache Tomcat 11.0.0-M3 (alpha) available

2023-02-23 Thread Mark Thomas

The Apache Tomcat team announces the immediate availability of Apache
Tomcat 11.0.0-M3 (alpha).

Apache Tomcat 11 is an open source software implementation of the
Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language,
Jakarta WebSocket, Jakarta Authentication and Jakarta Annotations
specifications.

Users of Tomcat 10 onwards should be aware that, as a result of the move
from Java EE to Jakarta EE as part of the transfer of Java EE to the
Eclipse Foundation, the primary package for all implemented APIs has
changed from javax.* to jakarta.*. This will almost certainly require
code changes to enable applications to migrate from Tomcat 9 and earlier
to Tomcat 10 and later. A migration tool is under development to aid
this process.

Apache Tomcat 11.0.0-M3 is a first milestone release of the 11.0.x
branch and has been made to provide users with early access to the new
features in Apache Tomcat 11.0.x so that they may provide feedback. The
notable changes compared to 11.0.0-M1 include:

- Increase the minimum supported Java version to Java 17.

- Remove support for starting Tomcat under a SecurityManager.

- Remove JAX-RPC support which was removed from the Jakarta EE
  platform for Jakarta EE 9

Please refer to the change log for the complete list of changes:
http://tomcat.apache.org/tomcat-11.0-doc/changelog.html

Downloads:
http://tomcat.apache.org/download-11.cgi

Migration guides from Apache Tomcat 8.5.x, 9.0.x and 10.1.x:
http://tomcat.apache.org/migration.html

Enjoy!

- The Apache Tomcat team

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] branch main updated: Validate the scheme pseudo-header in HTTP/2

2023-02-23 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 3e19b6947c Validate the scheme pseudo-header in HTTP/2
3e19b6947c is described below

commit 3e19b6947c067c896c978d56f645d5f6f8751bb5
Author: Mark Thomas 
AuthorDate: Thu Feb 23 15:22:10 2023 +

Validate the scheme pseudo-header in HTTP/2
---
 java/org/apache/coyote/http2/Stream.java   |  7 ++
 java/org/apache/coyote/http2/StreamProcessor.java  |  6 ++
 .../apache/tomcat/util/http/parser/HttpParser.java | 51 ++
 .../apache/coyote/http2/TestHttp2Section_8_1.java  | 80 +-
 webapps/docs/changelog.xml |  8 +++
 5 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index 4a82c4a239..c5cc5f5f2f 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -149,6 +149,13 @@ class Stream extends AbstractNonZeroStream implements 
HeaderEmitter {
 
 
 private void prepareRequest() {
+if (coyoteRequest.scheme().isNull()) {
+if (handler.getProtocol().getHttp11Protocol().isSSLEnabled()) {
+coyoteRequest.scheme().setString("https");
+} else {
+coyoteRequest.scheme().setString("http");
+}
+}
 MessageBytes hostValueMB = 
coyoteRequest.getMimeHeaders().getUniqueValue("host");
 if (hostValueMB == null) {
 throw new IllegalArgumentException();
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java 
b/java/org/apache/coyote/http2/StreamProcessor.java
index 7398ce0de5..affc460a7b 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -484,6 +484,12 @@ class StreamProcessor extends AbstractProcessor {
 return false;
 }
 
+// Scheme must adhere to RFC 3986
+String scheme = request.scheme().toString();
+if (!HttpParser.isScheme(scheme)) {
+return false;
+}
+
 // Invalid character in request target
 // (other checks such as valid %nn happen later)
 ByteChunk bc = request.requestURI().getByteChunk();
diff --git a/java/org/apache/tomcat/util/http/parser/HttpParser.java 
b/java/org/apache/tomcat/util/http/parser/HttpParser.java
index 0758dd5915..6975e3b53f 100644
--- a/java/org/apache/tomcat/util/http/parser/HttpParser.java
+++ b/java/org/apache/tomcat/util/http/parser/HttpParser.java
@@ -47,6 +47,7 @@ public class HttpParser {
 private static final boolean[] IS_HTTP_PROTOCOL = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_ALPHA = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_NUMERIC = new boolean[ARRAY_SIZE];
+private static final boolean[] IS_SCHEME = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_UNRESERVED = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_SUBDELIM = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_USERINFO = new boolean[ARRAY_SIZE];
@@ -94,6 +95,10 @@ public class HttpParser {
 IS_ALPHA[i] = true;
 }
 
+if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '+' || i == '-' || i == 
'.') {
+IS_SCHEME[i] = true;
+}
+
 if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '-' || i == '.' || i == 
'_' || i == '~') {
 IS_UNRESERVED[i] = true;
 }
@@ -319,6 +324,52 @@ public class HttpParser {
 }
 
 
+public static boolean isScheme(int c) {
+// Fast for valid scheme characters, slower for some incorrect
+// ones
+try {
+return IS_SCHEME[c];
+} catch (ArrayIndexOutOfBoundsException ex) {
+return false;
+}
+}
+
+
+/**
+ * Is the provided String a scheme as per RFC 3986?
+ * 
+ * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ * 
+ * Since a scheme requires at least 1 ALPHA, {@code null} and the empty
+ * string ({@code ""}) are not considered to be valid tokens.
+ *
+ * @param s The string to test
+ *
+ * @return {@code true} if the string is a valid scheme, otherwise
+ * {@code false}
+ */
+public static boolean isScheme(String s) {
+if (s == null) {
+return false;
+}
+if (s.isEmpty()) {
+return false;
+}
+char[] chars = s.toCharArray();
+if (!isAlpha(chars[0])) {
+return false;
+}
+if (chars.length > 1) {
+for (int i = 1; i < chars.length; i++) {
+if (!isScheme(chars[i])) {
+return false;
+}
+}
+}
+  

[tomcat] branch 10.1.x updated: Validate the scheme pseudo-header in HTTP/2

2023-02-23 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 e7388e78d0 Validate the scheme pseudo-header in HTTP/2
e7388e78d0 is described below

commit e7388e78d0177d74e9c4111c3fe34ccb9d00d795
Author: Mark Thomas 
AuthorDate: Thu Feb 23 15:22:10 2023 +

Validate the scheme pseudo-header in HTTP/2
---
 java/org/apache/coyote/http2/Stream.java   |  7 ++
 java/org/apache/coyote/http2/StreamProcessor.java  |  6 ++
 .../apache/tomcat/util/http/parser/HttpParser.java | 51 ++
 .../apache/coyote/http2/TestHttp2Section_8_1.java  | 80 +-
 webapps/docs/changelog.xml |  8 +++
 5 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index c40581c545..a8b59538a6 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -148,6 +148,13 @@ class Stream extends AbstractNonZeroStream implements 
HeaderEmitter {
 
 
 private void prepareRequest() {
+if (coyoteRequest.scheme().isNull()) {
+if (handler.getProtocol().getHttp11Protocol().isSSLEnabled()) {
+coyoteRequest.scheme().setString("https");
+} else {
+coyoteRequest.scheme().setString("http");
+}
+}
 MessageBytes hostValueMB = 
coyoteRequest.getMimeHeaders().getUniqueValue("host");
 if (hostValueMB == null) {
 throw new IllegalArgumentException();
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java 
b/java/org/apache/coyote/http2/StreamProcessor.java
index 1a991a05ab..303aff7692 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -477,6 +477,12 @@ class StreamProcessor extends AbstractProcessor {
 return false;
 }
 
+// Scheme must adhere to RFC 3986
+String scheme = request.scheme().toString();
+if (!HttpParser.isScheme(scheme)) {
+return false;
+}
+
 // Invalid character in request target
 // (other checks such as valid %nn happen later)
 ByteChunk bc = request.requestURI().getByteChunk();
diff --git a/java/org/apache/tomcat/util/http/parser/HttpParser.java 
b/java/org/apache/tomcat/util/http/parser/HttpParser.java
index 0758dd5915..6975e3b53f 100644
--- a/java/org/apache/tomcat/util/http/parser/HttpParser.java
+++ b/java/org/apache/tomcat/util/http/parser/HttpParser.java
@@ -47,6 +47,7 @@ public class HttpParser {
 private static final boolean[] IS_HTTP_PROTOCOL = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_ALPHA = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_NUMERIC = new boolean[ARRAY_SIZE];
+private static final boolean[] IS_SCHEME = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_UNRESERVED = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_SUBDELIM = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_USERINFO = new boolean[ARRAY_SIZE];
@@ -94,6 +95,10 @@ public class HttpParser {
 IS_ALPHA[i] = true;
 }
 
+if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '+' || i == '-' || i == 
'.') {
+IS_SCHEME[i] = true;
+}
+
 if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '-' || i == '.' || i == 
'_' || i == '~') {
 IS_UNRESERVED[i] = true;
 }
@@ -319,6 +324,52 @@ public class HttpParser {
 }
 
 
+public static boolean isScheme(int c) {
+// Fast for valid scheme characters, slower for some incorrect
+// ones
+try {
+return IS_SCHEME[c];
+} catch (ArrayIndexOutOfBoundsException ex) {
+return false;
+}
+}
+
+
+/**
+ * Is the provided String a scheme as per RFC 3986?
+ * 
+ * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ * 
+ * Since a scheme requires at least 1 ALPHA, {@code null} and the empty
+ * string ({@code ""}) are not considered to be valid tokens.
+ *
+ * @param s The string to test
+ *
+ * @return {@code true} if the string is a valid scheme, otherwise
+ * {@code false}
+ */
+public static boolean isScheme(String s) {
+if (s == null) {
+return false;
+}
+if (s.isEmpty()) {
+return false;
+}
+char[] chars = s.toCharArray();
+if (!isAlpha(chars[0])) {
+return false;
+}
+if (chars.length > 1) {
+for (int i = 1; i < chars.length; i++) {
+if (!isScheme(chars[i])) {
+return false;
+}
+}
+}

[tomcat] branch 9.0.x updated: Validate the scheme pseudo-header in HTTP/2

2023-02-23 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 9c38aac33a Validate the scheme pseudo-header in HTTP/2
9c38aac33a is described below

commit 9c38aac33ae02da550d459d011d3ffb030a46147
Author: Mark Thomas 
AuthorDate: Thu Feb 23 15:22:10 2023 +

Validate the scheme pseudo-header in HTTP/2
---
 java/org/apache/coyote/http2/Stream.java   |  7 ++
 java/org/apache/coyote/http2/StreamProcessor.java  |  6 ++
 .../apache/tomcat/util/http/parser/HttpParser.java | 51 ++
 .../apache/coyote/http2/TestHttp2Section_8_1.java  | 80 +-
 webapps/docs/changelog.xml |  8 +++
 5 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index 1b8202871f..593c05cdf7 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -148,6 +148,13 @@ class Stream extends AbstractNonZeroStream implements 
HeaderEmitter {
 
 
 private void prepareRequest() {
+if (coyoteRequest.scheme().isNull()) {
+if (handler.getProtocol().getHttp11Protocol().isSSLEnabled()) {
+coyoteRequest.scheme().setString("https");
+} else {
+coyoteRequest.scheme().setString("http");
+}
+}
 MessageBytes hostValueMB = 
coyoteRequest.getMimeHeaders().getUniqueValue("host");
 if (hostValueMB == null) {
 throw new IllegalArgumentException();
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java 
b/java/org/apache/coyote/http2/StreamProcessor.java
index 3e969cc5ea..675a62e18d 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -478,6 +478,12 @@ class StreamProcessor extends AbstractProcessor {
 return false;
 }
 
+// Scheme must adhere to RFC 3986
+String scheme = request.scheme().toString();
+if (!HttpParser.isScheme(scheme)) {
+return false;
+}
+
 // Invalid character in request target
 // (other checks such as valid %nn happen later)
 ByteChunk bc = request.requestURI().getByteChunk();
diff --git a/java/org/apache/tomcat/util/http/parser/HttpParser.java 
b/java/org/apache/tomcat/util/http/parser/HttpParser.java
index 0758dd5915..6975e3b53f 100644
--- a/java/org/apache/tomcat/util/http/parser/HttpParser.java
+++ b/java/org/apache/tomcat/util/http/parser/HttpParser.java
@@ -47,6 +47,7 @@ public class HttpParser {
 private static final boolean[] IS_HTTP_PROTOCOL = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_ALPHA = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_NUMERIC = new boolean[ARRAY_SIZE];
+private static final boolean[] IS_SCHEME = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_UNRESERVED = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_SUBDELIM = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_USERINFO = new boolean[ARRAY_SIZE];
@@ -94,6 +95,10 @@ public class HttpParser {
 IS_ALPHA[i] = true;
 }
 
+if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '+' || i == '-' || i == 
'.') {
+IS_SCHEME[i] = true;
+}
+
 if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '-' || i == '.' || i == 
'_' || i == '~') {
 IS_UNRESERVED[i] = true;
 }
@@ -319,6 +324,52 @@ public class HttpParser {
 }
 
 
+public static boolean isScheme(int c) {
+// Fast for valid scheme characters, slower for some incorrect
+// ones
+try {
+return IS_SCHEME[c];
+} catch (ArrayIndexOutOfBoundsException ex) {
+return false;
+}
+}
+
+
+/**
+ * Is the provided String a scheme as per RFC 3986?
+ * 
+ * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ * 
+ * Since a scheme requires at least 1 ALPHA, {@code null} and the empty
+ * string ({@code ""}) are not considered to be valid tokens.
+ *
+ * @param s The string to test
+ *
+ * @return {@code true} if the string is a valid scheme, otherwise
+ * {@code false}
+ */
+public static boolean isScheme(String s) {
+if (s == null) {
+return false;
+}
+if (s.isEmpty()) {
+return false;
+}
+char[] chars = s.toCharArray();
+if (!isAlpha(chars[0])) {
+return false;
+}
+if (chars.length > 1) {
+for (int i = 1; i < chars.length; i++) {
+if (!isScheme(chars[i])) {
+return false;
+}
+}
+}
+

[tomcat] branch 8.5.x updated: Validate the scheme pseudo-header in HTTP/2

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new 2b51e32a60 Validate the scheme pseudo-header in HTTP/2
2b51e32a60 is described below

commit 2b51e32a6026ac1e89643c5f131a051994c59243
Author: Mark Thomas 
AuthorDate: Thu Feb 23 15:22:10 2023 +

Validate the scheme pseudo-header in HTTP/2
---
 java/org/apache/coyote/http2/Stream.java   |  7 ++
 java/org/apache/coyote/http2/StreamProcessor.java  |  6 ++
 .../apache/tomcat/util/http/parser/HttpParser.java | 51 ++
 .../apache/coyote/http2/TestHttp2Section_8_1.java  | 80 +-
 webapps/docs/changelog.xml |  8 +++
 5 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index a00f3d8329..5623a94838 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -146,6 +146,13 @@ class Stream extends AbstractNonZeroStream implements 
HeaderEmitter {
 
 
 private void prepareRequest() {
+if (coyoteRequest.scheme().isNull()) {
+if (handler.getProtocol().getHttp11Protocol().isSSLEnabled()) {
+coyoteRequest.scheme().setString("https");
+} else {
+coyoteRequest.scheme().setString("http");
+}
+}
 MessageBytes hostValueMB = 
coyoteRequest.getMimeHeaders().getUniqueValue("host");
 if (hostValueMB == null) {
 throw new IllegalArgumentException();
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java 
b/java/org/apache/coyote/http2/StreamProcessor.java
index d51ad971e1..75bf5490d4 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -439,6 +439,12 @@ class StreamProcessor extends AbstractProcessor {
 return false;
 }
 
+// Scheme must adhere to RFC 3986
+String scheme = request.scheme().toString();
+if (!HttpParser.isScheme(scheme)) {
+return false;
+}
+
 // Invalid character in request target
 // (other checks such as valid %nn happen later)
 ByteChunk bc = request.requestURI().getByteChunk();
diff --git a/java/org/apache/tomcat/util/http/parser/HttpParser.java 
b/java/org/apache/tomcat/util/http/parser/HttpParser.java
index 409b613f11..70d65e1ad3 100644
--- a/java/org/apache/tomcat/util/http/parser/HttpParser.java
+++ b/java/org/apache/tomcat/util/http/parser/HttpParser.java
@@ -51,6 +51,7 @@ public class HttpParser {
 private static final boolean[] IS_HTTP_PROTOCOL = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_ALPHA = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_NUMERIC = new boolean[ARRAY_SIZE];
+private static final boolean[] IS_SCHEME = new boolean[ARRAY_SIZE];
 private static final boolean[] REQUEST_TARGET_ALLOW = new 
boolean[ARRAY_SIZE];
 private static final boolean[] IS_UNRESERVED = new boolean[ARRAY_SIZE];
 private static final boolean[] IS_SUBDELIM = new boolean[ARRAY_SIZE];
@@ -99,6 +100,10 @@ public class HttpParser {
 IS_ALPHA[i] = true;
 }
 
+if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '+' || i == '-' || i == 
'.') {
+IS_SCHEME[i] = true;
+}
+
 if (IS_ALPHA[i] || IS_NUMERIC[i] || i == '-' || i == '.' || i == 
'_' || i == '~') {
 IS_UNRESERVED[i] = true;
 }
@@ -339,6 +344,52 @@ public class HttpParser {
 }
 
 
+public static boolean isScheme(int c) {
+// Fast for valid scheme characters, slower for some incorrect
+// ones
+try {
+return IS_SCHEME[c];
+} catch (ArrayIndexOutOfBoundsException ex) {
+return false;
+}
+}
+
+
+/**
+ * Is the provided String a scheme as per RFC 3986?
+ * 
+ * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ * 
+ * Since a scheme requires at least 1 ALPHA, {@code null} and the empty
+ * string ({@code ""}) are not considered to be valid tokens.
+ *
+ * @param s The string to test
+ *
+ * @return {@code true} if the string is a valid scheme, otherwise
+ * {@code false}
+ */
+public static boolean isScheme(String s) {
+if (s == null) {
+return false;
+}
+if (s.isEmpty()) {
+return false;
+}
+char[] chars = s.toCharArray();
+if (!isAlpha(chars[0])) {
+return false;
+}
+if (chars.length > 1) {
+for (int i = 1; i < chars.length; i++) {
+if (!isScheme(chars[i])) {
+return false;
+}
+}
+

Re: [VOTE] Release Apache Tomcat 9.0.72

2023-02-23 Thread Konstantin Kolinko
сб, 18 февр. 2023 г. в 12:46, Rémy Maucherat :
>
> The proposed Apache Tomcat 9.0.72 release is now available for voting.
>
> The notable changes compared to 9.0.71 are:
>
> -  Add an error report valve that allows redirecting to or proxying from an
>external web server.
>
> - Log basic information for each configured TLS certificate when
>Tomcat starts.
>
> Along with lots of other bug fixes and improvements.
>
> For full details, see the changelog:
> https://nightlies.apache.org/tomcat/tomcat-9.0.x/docs/changelog.html
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.72/
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1418
> The tag is:
> https://github.com/apache/tomcat/tree/9.0.72
> 7754d319b2a8866b5bcdf1ea0f35e68470320295
>
> The proposed 9.0.72 release is:
> [ ] Broken - do not release
> [x] Stable - go ahead and release as 9.0.72

Smoke tests OK with Java 8u362, Tomcat Native enabled,
Unit tests OK with Java 11.0.18, all connectors,
on Windows 10.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn propchange: r60269 - svn:log

2023-02-23 Thread kkolinko
Author: kkolinko
Revision: 60269
Modified property: svn:log

Modified: svn:log at Thu Feb 23 16:00:45 2023
--
--- svn:log (original)
+++ svn:log Thu Feb 23 16:00:45 2023
@@ -1 +1 @@
-Release Apache Tomcat 11.0.0-Me (alpha)
+Release Apache Tomcat 11.0.0-M3 (alpha)


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] 01/06: Handle CONNECT with deliberate 501 rather than accidental 400

2023-02-23 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 e5815e2312088c092bfa4a866332a650aee8f142
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:37:30 2023 +

Handle CONNECT with deliberate 501 rather than accidental 400
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 92 --
 .../catalina/connector/LocalStrings.properties |  1 +
 java/org/apache/coyote/http2/Stream.java   |  3 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 18 +
 .../apache/coyote/http2/TestStreamProcessor.java   | 23 ++
 webapps/docs/changelog.xml |  4 +
 6 files changed, 97 insertions(+), 44 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 9efcce07e6..0e0526a878 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -635,53 +635,59 @@ public class CoyoteAdapter implements Adapter {
 
 MessageBytes decodedURI = req.decodedURI();
 
-if (undecodedURI.getType() == MessageBytes.T_BYTES) {
-if (connector.getRejectSuspiciousURIs()) {
-if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
-response.sendError(400, "Invalid URI");
+// Filter CONNECT method
+if (req.method().equalsIgnoreCase("CONNECT")) {
+response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, 
sm.getString("coyoteAdapter.connect"));
+} else {
+// No URI for CONNECT requests
+if (undecodedURI.getType() == MessageBytes.T_BYTES) {
+if (connector.getRejectSuspiciousURIs()) {
+if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
+response.sendError(400, "Invalid URI");
+}
 }
-}
 
-// Copy the raw URI to the decodedURI
-decodedURI.duplicate(undecodedURI);
+// Copy the raw URI to the decodedURI
+decodedURI.duplicate(undecodedURI);
 
-// Parse (and strip out) the path parameters
-parsePathParameters(req, request);
+// Parse (and strip out) the path parameters
+parsePathParameters(req, request);
 
-// URI decoding
-// %xx decoding of the URL
-try {
-req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
-} catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + ioe.getMessage());
-}
-// Normalization
-if (normalize(req.decodedURI(), connector.getAllowBackslash())) {
-// Character decoding
-convertURI(decodedURI, request);
-// URIEncoding values are limited to US-ASCII supersets.
-// Therefore it is not necessary to check that the URI remains
-// normalized after character decoding
+// URI decoding
+// %xx decoding of the URL
+try {
+req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
+} catch (IOException ioe) {
+response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+}
+// Normalization
+if (normalize(req.decodedURI(), 
connector.getAllowBackslash())) {
+// Character decoding
+convertURI(decodedURI, request);
+// URIEncoding values are limited to US-ASCII supersets.
+// Therefore it is not necessary to check that the URI 
remains
+// normalized after character decoding
+} else {
+response.sendError(400, "Invalid URI");
+}
 } else {
-response.sendError(400, "Invalid URI");
-}
-} else {
-/* The URI is chars or String, and has been sent using an in-memory
- * protocol handler. The following assumptions are made:
- * - req.requestURI() has been set to the 'original' non-decoded,
- *   non-normalized URI
- * - req.decodedURI() has been set to the decoded, normalized form
- *   of req.requestURI()
- * - 'suspicious' URI filtering - if required - has already been
- *   performed
- */
-decodedURI.toChars();
-// Remove all path parameters; any needed path parameter should be 
set
-// using the request object rather than passing it in the URL
-CharChunk uriCC = decodedURI.

[tomcat] branch main updated (3e19b6947c -> 4cadeffb78)

2023-02-23 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 3e19b6947c Validate the scheme pseudo-header in HTTP/2
 new e5815e2312 Handle CONNECT with deliberate 501 rather than accidental 
400
 new cfc1812ac9 Use i18n
 new e20760b5a1 Clean-up - formatting. No functional change.
 new 3dc4497f8a Clean-up - formatting. No functional change.
 new 0da9b12474 Clean-up - formatting. No functional change.
 new 4cadeffb78 Clean-up - formatting. No functional change.

The 6 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/connector/ClientAbortException.java   |  10 +-
 java/org/apache/catalina/connector/Connector.java  | 229 +++
 .../apache/catalina/connector/CoyoteAdapter.java   | 319 -
 .../catalina/connector/CoyoteInputStream.java  |   4 +-
 .../catalina/connector/CoyoteOutputStream.java |  16 +-
 .../apache/catalina/connector/CoyotePrincipal.java |   7 +-
 .../apache/catalina/connector/CoyoteReader.java|  37 +-
 .../apache/catalina/connector/CoyoteWriter.java|   5 +-
 .../org/apache/catalina/connector/InputBuffer.java |  31 +-
 .../catalina/connector/LocalStrings.properties |   4 +
 .../apache/catalina/connector/OutputBuffer.java|  43 +-
 java/org/apache/catalina/connector/Request.java| 751 +
 .../apache/catalina/connector/RequestFacade.java   |  12 +-
 java/org/apache/catalina/connector/Response.java   | 282 
 .../apache/catalina/connector/ResponseFacade.java  |   5 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 269 +---
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 ++---
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 ++-
 java/org/apache/coyote/http11/Http11Processor.java | 164 ++---
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 java/org/apache/coyote/http2/Stream.java   |   3 +-
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 +---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +-
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 514 ++
 test/org/apache/coyote/http2/Http2TestBase.java| 214 +++---
 test/org/apache/coyote/http2/TestAsync.java|  19 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  27 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 +-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +-
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 +-
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 +-
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 +-
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  72 +-
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +-
 test/org/apache/coyote/http2/TestLargeUpload.java  |  19 +-
 test/org/apache/coyote/http2/TestStream.java   |  32 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  47 +-
 .../apache/coyote/http2/TestStreamQueryString.java |  45 +-
 .../org/apache/coyote/http2/TesterHttp2Parser.java |   6 +-
 webapps/docs/changelog.xml |   4 +
 65 files changed, 1869 insertions(+), 2583 deletions(-)


-

[tomcat] 05/06: Clean-up - formatting. No functional change.

2023-02-23 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 0da9b12474179b8c33329869a9f1ce71b2715720
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:47:52 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 ++---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +--
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 506 -
 4 files changed, 237 insertions(+), 459 deletions(-)

diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index 9e8c5b43b0..40276619de 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -39,7 +39,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 private static final String CR = "\r";
 private static final String LF = "\n";
-private  static final String CRLF = CR + LF;
+private static final String CRLF = CR + LF;
 
 /**
  * Test case for https://bz.apache.org/bugzilla/show_bug.cgi?id=48839
@@ -76,13 +76,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 connect();
 
 String[] request = new String[1];
-request[0] =
-"GET http://localhost:8080/test HTTP/1.1" + CRLF +
-"Host: localhost:8080" + CRLF +
-"X-Bug48839: abcd" + CRLF +
-"\tefgh" + CRLF +
-"Connection: close" + CRLF +
-CRLF;
+request[0] = "GET http://localhost:8080/test HTTP/1.1" + CRLF 
+ "Host: localhost:8080" + CRLF +
+"X-Bug48839: abcd" + CRLF + "\tefgh" + CRLF + 
"Connection: close" + CRLF + CRLF;
 
 setRequest(request);
 processRequest(); // blocks until response has been read
@@ -116,8 +111,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
  * Only interested in the request headers from a GET request
  */
 @Override
-protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-throws ServletException, IOException {
+protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
 // Just echo the header value back as plain text
 resp.setContentType("text/plain");
 
@@ -167,9 +161,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 @Test
 public void testBug51557SeparatorsInName() throws Exception {
-char httpSeparators[] = new char[] {
-'\t', ' ', '\"', '(', ')', ',', '/', ':', ';', '<',
-'=', '>', '?', '@', '[', '\\', ']', '{', '}' };
+char httpSeparators[] = new char[] { '\t', ' ', '\"', '(', ')', ',', 
'/', ':', ';', '<', '=', '>', '?', '@',
+'[', '\\', ']', '{', '}' };
 
 for (char s : httpSeparators) {
 doTestBug51557CharInName(s);
@@ -222,8 +215,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557Continuation() {
 
-Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon",
-"foo" + SimpleHttpClient.CRLF + " bar");
+Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon", "foo" 
+ SimpleHttpClient.CRLF + " bar");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -235,8 +227,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryStart() {
 
-Bug51557Client client = new Bug51557Client("=X-Bug51557",
-"invalid");
+Bug51557Client client = new Bug51557Client("=X-Bug51557", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -248,8 +239,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryEnd() {
 
-Bug51557Client client = new Bug51557Client("X-Bug51557=",
-"invalid");
+Bug51557Client client = new Bug51557Client("X-Bug51557=", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -259,8 +249,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 
 private void doTestBug51557CharInName(char s) {
-Bug51557Client client =
-new Bug51557Client("X-Bug" + s + "51557", "invalid");
+Bug51557Client client = new Bug51557Client("X-Bug" + s + "51557", 
"invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -270,8 +259,7 @@ public class TestHttp11InputBuffer extends TomcatBas

[tomcat] 02/06: Use i18n

2023-02-23 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 cfc1812ac9a54f7c5b18ddedfa875df2b283dbe0
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:41:59 2023 +

Use i18n
---
 java/org/apache/catalina/connector/CoyoteAdapter.java  | 10 +-
 java/org/apache/catalina/connector/LocalStrings.properties |  3 +++
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 0e0526a878..d13cefc327 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -629,7 +629,7 @@ public class CoyoteAdapter implements Adapter {
 connector.getService().getContainer().logAccess(request, 
response, 0, true);
 return false;
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -643,7 +643,7 @@ public class CoyoteAdapter implements Adapter {
 if (undecodedURI.getType() == MessageBytes.T_BYTES) {
 if (connector.getRejectSuspiciousURIs()) {
 if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -658,7 +658,7 @@ public class CoyoteAdapter implements Adapter {
 try {
 req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
 } catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURIWithMessage", ioe.getMessage()));
 }
 // Normalization
 if (normalize(req.decodedURI(), 
connector.getAllowBackslash())) {
@@ -668,7 +668,7 @@ public class CoyoteAdapter implements Adapter {
 // Therefore it is not necessary to check that the URI 
remains
 // normalized after character decoding
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 } else {
 /* The URI is chars or String, and has been sent using an 
in-memory
@@ -866,7 +866,7 @@ public class CoyoteAdapter implements Adapter {
 if (header != null) {
 res.addHeader("Allow", header);
 }
-response.sendError(405, "TRACE method is not allowed");
+response.sendError(405, sm.getString("coyoteAdapter.trace"));
 // Safe to skip the remainder of this method.
 return true;
 }
diff --git a/java/org/apache/catalina/connector/LocalStrings.properties 
b/java/org/apache/catalina/connector/LocalStrings.properties
index 4f77e0eb9b..7d81708f8e 100644
--- a/java/org/apache/catalina/connector/LocalStrings.properties
+++ b/java/org/apache/catalina/connector/LocalStrings.properties
@@ -21,7 +21,10 @@ coyoteAdapter.checkRecycled.request=Encountered a 
non-recycled request and recyc
 coyoteAdapter.checkRecycled.response=Encountered a non-recycled response and 
recycled it forcedly.
 coyoteAdapter.connect=HTTP requests using the CONNECT method are not supported
 coyoteAdapter.debug=The variable [{0}] has value [{1}]
+coyoteAdapter.invalidURI=Invalid URI
+coyoteAdapter.invalidURIWithMessage=Invalid URI: [{0}]
 coyoteAdapter.nullRequest=An asynchronous dispatch may only happen on an 
existing request
+coyoteAdapter.trace=TRACE method is not allowed
 
 coyoteConnector.invalidEncoding=The encoding [{0}] is not recognised by the 
JRE. The Connector will continue to use [{1}]
 coyoteConnector.invalidPort=The connector cannot start since the specified 
port value of [{0}] is invalid


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] 06/06: Clean-up - formatting. No functional change.

2023-02-23 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 4cadeffb7821cf1fa7c13c2a87652d668e3ba7e1
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:48:17 2023 +

Clean-up - formatting. No functional change.
---
 test/org/apache/coyote/http2/Http2TestBase.java| 214 +++
 test/org/apache/coyote/http2/TestAsync.java|  19 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  27 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 ++-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 ++---
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +--
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 ++--
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 ++--
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 ++---
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  72 ++---
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +---
 test/org/apache/coyote/http2/TestLargeUpload.java  |  19 +-
 test/org/apache/coyote/http2/TestStream.java   |  32 +--
 .../apache/coyote/http2/TestStreamProcessor.java   |  26 +-
 .../apache/coyote/http2/TestStreamQueryString.java |  45 +---
 .../org/apache/coyote/http2/TesterHttp2Parser.java |   6 +-
 34 files changed, 477 insertions(+), 747 deletions(-)

diff --git a/test/org/apache/coyote/http2/Http2TestBase.java 
b/test/org/apache/coyote/http2/Http2TestBase.java
index 60035c3434..df70095346 100644
--- a/test/org/apache/coyote/http2/Http2TestBase.java
+++ b/test/org/apache/coyote/http2/Http2TestBase.java
@@ -66,8 +66,7 @@ import org.apache.tomcat.util.http.parser.Priority;
 import org.apache.tomcat.util.net.TesterSupport;
 
 /**
- * Tests for compliance with the https://tools.ietf.org/html/rfc7540";>
- * HTTP/2 specification.
+ * Tests for compliance with the https://tools.ietf.org/html/rfc7540";> HTTP/2 specification.
  */
 @RunWith(Parameterized.class)
 public abstract class Http2TestBase extends TomcatBaseTest {
@@ -101,8 +100,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 private static final String HEADER_IGNORED = "x-ignore";
 
 static final String DEFAULT_CONNECTION_HEADER_VALUE = "Upgrade, 
HTTP2-Settings";
-private static final byte[] EMPTY_SETTINGS_FRAME =
-{ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
+private static final byte[] EMPTY_SETTINGS_FRAME = { 0x00, 0x00, 0x00, 
0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
 static final String EMPTY_HTTP2_SETTINGS_HEADER;
 
 static {
@@ -132,8 +130,8 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 }
 
 /**
- * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures
- * that the first response is correctly received.
+ * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures 
that the first response is correctly
+ * received.
  */
 protected void http2Connect() throws Exception {
 http2Connect(false);
@@ -168,12 +166,8 @@ public abstract class Http2TestBase extends TomcatBaseTest 
{
 parser.readFrame();
 parser.readFrame();
 
-Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" +
-"0-Settings-End\n" +
-"0-Settings-Ack\n" +
-"0-Ping-[0,0,0,0,0,0,0,1]\n" +
-getSimpleResponseTrace(1)
-, output.getTrace());
+Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" 
+ "0-Settings-End\n" +
+"0-Settings-Ack\n" + "0-Ping-[0,0,0,0,0,0,0,1]\n" + 
getSimpleResponseTrace(1), output.getTrace());
 output.clearTrace();
 }
 
@@ -210,14 +204,12 @@ public abstract class Http2TestBase extends 
TomcatBaseTest {
 }
 
 
-protected void buildE

[tomcat] 04/06: Clean-up - formatting. No functional change.

2023-02-23 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 3dc4497f8a5d8498d8fb42b1326e214b89e28270
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:47:25 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/AbstractHttp11Protocol.java  | 269 +
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 ++---
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 
 java/org/apache/coyote/http11/Http11Processor.java | 164 ++---
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 10 files changed, 376 insertions(+), 365 deletions(-)

diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 422943ddab..9ffaeb0c93 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -55,13 +55,12 @@ import org.apache.tomcat.util.res.StringManager;
 
 public abstract class AbstractHttp11Protocol extends AbstractProtocol {
 
-protected static final StringManager sm =
-StringManager.getManager(AbstractHttp11Protocol.class);
+protected static final StringManager sm = 
StringManager.getManager(AbstractHttp11Protocol.class);
 
 private final CompressionConfig compressionConfig = new 
CompressionConfig();
 
 
-public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
+public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
 super(endpoint);
 setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
 }
@@ -117,7 +116,7 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
  * Over-ridden here to make the method visible to nested classes.
  */
 @Override
-protected AbstractEndpoint getEndpoint() {
+protected AbstractEndpoint getEndpoint() {
 return super.getEndpoint();
 }
 
@@ -126,61 +125,70 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
 // -- managed in the 
ProtocolHandler
 
 private ContinueResponseTiming continueResponseTiming = 
ContinueResponseTiming.IMMEDIATELY;
+
 public String getContinueResponseTiming() {
 return continueResponseTiming.toString();
 }
+
 public void setContinueResponseTiming(String continueResponseTiming) {
 this.continueResponseTiming = 
ContinueResponseTiming.fromString(continueResponseTiming);
 }
+
 public ContinueResponseTiming getContinueResponseTimingInternal() {
 return continueResponseTiming;
 }
 
 
 private boolean useKeepAliveResponseHeader = true;
+
 public boolean getUseKeepAliveResponseHeader() {
 return useKeepAliveResponseHeader;
 }
+
 public void setUseKeepAliveResponseHeader(boolean 
useKeepAliveResponseHeader) {
 this.useKeepAliveResponseHeader = useKeepAliveResponseHeader;
 }
 
 
 private String relaxedPathChars = null;
+
 public String getRelaxedPathChars() {
 return relaxedPathChars;
 }
+
 public void setRelaxedPathChars(String relaxedPathChars) {
 this.relaxedPathChars = relaxedPathChars;
 }
 
 
 private String relaxedQueryChars = null;
+
 public String getRelaxedQueryChars() {
 return relaxedQueryChars;
 }
+
 public void setRelaxedQueryChars(String relaxedQueryChars) {
 this.relaxedQueryChars = relaxedQueryChars;
 }
 
 
 private boolean allowHostHeaderMismatch = false;
+
 /**
- * Will Tomcat accept an HTTP 1.1 request where the host header does not
- * agree with the host specified (if any) in the request line?
+ * Will Tomcat accept an HTTP 1.1 request where the host header does not 
agree with the host specified (if any) in
+ * the request line?
  *
- * @return {@code true} if Tomcat will allow such requests, otherwise
- * {@code false}
+ * @return {@code true} if Tomcat will allow such requests, otherwise 
{@code false}
  */
 public boolean getAllowHostHeaderMismatch() {
 return allowHostHeaderMismatch;
 }
+
 /**
- * Will Tomcat accept an HTTP 1.1 request where the host header does not
- * agree with the host specified (if any) in the request line?
+ * Will Tomcat accept an HTTP 1.1 request where the host header does not 
agree with the host specified (if any) in
+ * the request line?
  *
- * @param allowHostHeaderMismatch {@code true} to allow such requests,
- *  

[tomcat] 04/06: Clean-up - formatting. No functional change.

2023-02-23 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 dbb979a15f89038cce380ed721bca8140d1c8078
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:49:36 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 ++-
 .../coyote/http11/AbstractHttp11Protocol.java  | 251 +
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 ++
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 
 java/org/apache/coyote/http11/Http11Processor.java | 164 ++
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 11 files changed, 380 insertions(+), 370 deletions(-)

diff --git a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
index d8241a6bac..6f6fff40e8 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
@@ -19,18 +19,17 @@ package org.apache.coyote.http11;
 import org.apache.tomcat.util.net.AbstractJsseEndpoint;
 import org.apache.tomcat.util.net.openssl.OpenSSLImplementation;
 
-public abstract class AbstractHttp11JsseProtocol
-extends AbstractHttp11Protocol {
+public abstract class AbstractHttp11JsseProtocol extends 
AbstractHttp11Protocol {
 
-public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
+public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
 super(endpoint);
 }
 
 
 @Override
-protected AbstractJsseEndpoint getEndpoint() {
+protected AbstractJsseEndpoint getEndpoint() {
 // Over-ridden to add cast
-return (AbstractJsseEndpoint) super.getEndpoint();
+return (AbstractJsseEndpoint) super.getEndpoint();
 }
 
 
@@ -38,18 +37,26 @@ public abstract class AbstractHttp11JsseProtocol
 if 
(OpenSSLImplementation.class.getName().equals(getSslImplementationName())) {
 return "openssl";
 }
-if (getSslImplementationName() != null
-&& 
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
+if (getSslImplementationName() != null &&
+
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
 return "opensslforeign";
 }
 return "jsse";
 }
 
-public String getSslImplementationName() { return 
getEndpoint().getSslImplementationName(); }
-public void setSslImplementationName(String s) { 
getEndpoint().setSslImplementationName(s); }
+public String getSslImplementationName() {
+return getEndpoint().getSslImplementationName();
+}
+
+public void setSslImplementationName(String s) {
+getEndpoint().setSslImplementationName(s);
+}
 
 
-public int getSniParseLimit() { return getEndpoint().getSniParseLimit(); }
+public int getSniParseLimit() {
+return getEndpoint().getSniParseLimit();
+}
+
 public void setSniParseLimit(int sniParseLimit) {
 getEndpoint().setSniParseLimit(sniParseLimit);
 }
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index ab74a5434d..a8fab9554d 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -54,13 +54,12 @@ import org.apache.tomcat.util.res.StringManager;
 
 public abstract class AbstractHttp11Protocol extends AbstractProtocol {
 
-protected static final StringManager sm =
-StringManager.getManager(AbstractHttp11Protocol.class);
+protected static final StringManager sm = 
StringManager.getManager(AbstractHttp11Protocol.class);
 
 private final CompressionConfig compressionConfig = new 
CompressionConfig();
 
 
-public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
+public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
 super(endpoint);
 setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
 }
@@ -116,7 +115,7 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
  * Over-ridden here to make the method visible to nested classes.
  */
 @Override
-protected AbstractEndpoint getEndpoint() {
+protected AbstractEndpoint getEndpoint() {
 return super.getEndpoint();
 }
 
@@ -125,61 +124,70 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
 // -- ma

[tomcat] 01/06: Handle CONNECT with deliberate 501 rather than accidental 400

2023-02-23 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 e4dff72164760179b6340bbc3c74c45c72a5bf9d
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:37:30 2023 +

Handle CONNECT with deliberate 501 rather than accidental 400
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 92 --
 .../catalina/connector/LocalStrings.properties |  1 +
 java/org/apache/coyote/http2/Stream.java   |  3 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 18 +
 .../apache/coyote/http2/TestStreamProcessor.java   | 23 ++
 webapps/docs/changelog.xml |  4 +
 6 files changed, 97 insertions(+), 44 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 79cff350f0..04afae184f 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -635,53 +635,59 @@ public class CoyoteAdapter implements Adapter {
 
 MessageBytes decodedURI = req.decodedURI();
 
-if (undecodedURI.getType() == MessageBytes.T_BYTES) {
-if (connector.getRejectSuspiciousURIs()) {
-if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
-response.sendError(400, "Invalid URI");
+// Filter CONNECT method
+if (req.method().equalsIgnoreCase("CONNECT")) {
+response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, 
sm.getString("coyoteAdapter.connect"));
+} else {
+// No URI for CONNECT requests
+if (undecodedURI.getType() == MessageBytes.T_BYTES) {
+if (connector.getRejectSuspiciousURIs()) {
+if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
+response.sendError(400, "Invalid URI");
+}
 }
-}
 
-// Copy the raw URI to the decodedURI
-decodedURI.duplicate(undecodedURI);
+// Copy the raw URI to the decodedURI
+decodedURI.duplicate(undecodedURI);
 
-// Parse (and strip out) the path parameters
-parsePathParameters(req, request);
+// Parse (and strip out) the path parameters
+parsePathParameters(req, request);
 
-// URI decoding
-// %xx decoding of the URL
-try {
-req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
-} catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + ioe.getMessage());
-}
-// Normalization
-if (normalize(req.decodedURI(), connector.getAllowBackslash())) {
-// Character decoding
-convertURI(decodedURI, request);
-// URIEncoding values are limited to US-ASCII supersets.
-// Therefore it is not necessary to check that the URI remains
-// normalized after character decoding
+// URI decoding
+// %xx decoding of the URL
+try {
+req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
+} catch (IOException ioe) {
+response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+}
+// Normalization
+if (normalize(req.decodedURI(), 
connector.getAllowBackslash())) {
+// Character decoding
+convertURI(decodedURI, request);
+// URIEncoding values are limited to US-ASCII supersets.
+// Therefore it is not necessary to check that the URI 
remains
+// normalized after character decoding
+} else {
+response.sendError(400, "Invalid URI");
+}
 } else {
-response.sendError(400, "Invalid URI");
-}
-} else {
-/* The URI is chars or String, and has been sent using an in-memory
- * protocol handler. The following assumptions are made:
- * - req.requestURI() has been set to the 'original' non-decoded,
- *   non-normalized URI
- * - req.decodedURI() has been set to the decoded, normalized form
- *   of req.requestURI()
- * - 'suspicious' URI filtering - if required - has already been
- *   performed
- */
-decodedURI.toChars();
-// Remove all path parameters; any needed path parameter should be 
set
-// using the request object rather than passing it in the URL
-CharChunk uriCC = decodedUR

[tomcat] 02/06: Use i18n

2023-02-23 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 a34d9daeb6d32590c24319dfc918edde673274ee
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:41:59 2023 +

Use i18n
---
 java/org/apache/catalina/connector/CoyoteAdapter.java  | 10 +-
 java/org/apache/catalina/connector/LocalStrings.properties |  3 +++
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 04afae184f..efe8dd61e7 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -629,7 +629,7 @@ public class CoyoteAdapter implements Adapter {
 connector.getService().getContainer().logAccess(request, 
response, 0, true);
 return false;
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -643,7 +643,7 @@ public class CoyoteAdapter implements Adapter {
 if (undecodedURI.getType() == MessageBytes.T_BYTES) {
 if (connector.getRejectSuspiciousURIs()) {
 if (checkSuspiciousURIs(undecodedURI.getByteChunk())) {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -658,7 +658,7 @@ public class CoyoteAdapter implements Adapter {
 try {
 req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
 } catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURIWithMessage", ioe.getMessage()));
 }
 // Normalization
 if (normalize(req.decodedURI(), 
connector.getAllowBackslash())) {
@@ -668,7 +668,7 @@ public class CoyoteAdapter implements Adapter {
 // Therefore it is not necessary to check that the URI 
remains
 // normalized after character decoding
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 } else {
 /* The URI is chars or String, and has been sent using an 
in-memory
@@ -866,7 +866,7 @@ public class CoyoteAdapter implements Adapter {
 if (header != null) {
 res.addHeader("Allow", header);
 }
-response.sendError(405, "TRACE method is not allowed");
+response.sendError(405, sm.getString("coyoteAdapter.trace"));
 // Safe to skip the remainder of this method.
 return true;
 }
diff --git a/java/org/apache/catalina/connector/LocalStrings.properties 
b/java/org/apache/catalina/connector/LocalStrings.properties
index aaf3dd675a..2b0e8c6998 100644
--- a/java/org/apache/catalina/connector/LocalStrings.properties
+++ b/java/org/apache/catalina/connector/LocalStrings.properties
@@ -21,7 +21,10 @@ coyoteAdapter.checkRecycled.request=Encountered a 
non-recycled request and recyc
 coyoteAdapter.checkRecycled.response=Encountered a non-recycled response and 
recycled it forcedly.
 coyoteAdapter.connect=HTTP requests using the CONNECT method are not supported
 coyoteAdapter.debug=The variable [{0}] has value [{1}]
+coyoteAdapter.invalidURI=Invalid URI
+coyoteAdapter.invalidURIWithMessage=Invalid URI: [{0}]
 coyoteAdapter.nullRequest=An asynchronous dispatch may only happen on an 
existing request
+coyoteAdapter.trace=TRACE method is not allowed
 
 coyoteConnector.invalidEncoding=The encoding [{0}] is not recognised by the 
JRE. The Connector will continue to use [{1}]
 coyoteConnector.invalidPort=The connector cannot start since the specified 
port value of [{0}] is invalid


-
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 (e7388e78d0 -> 018e5bd7dc)

2023-02-23 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 e7388e78d0 Validate the scheme pseudo-header in HTTP/2
 new e4dff72164 Handle CONNECT with deliberate 501 rather than accidental 
400
 new a34d9daeb6 Use i18n
 new e3d9795e8a Clean-up - formatting. No functional change.
 new dbb979a15f Clean-up - formatting. No functional change.
 new 1b6c6c4701 Clean-up - formatting. No functional change.
 new 018e5bd7dc Clean-up - formatting. No functional change.

The 6 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/connector/ClientAbortException.java   |  10 +-
 java/org/apache/catalina/connector/Connector.java  | 234 +++
 .../apache/catalina/connector/CoyoteAdapter.java   | 319 -
 .../catalina/connector/CoyoteInputStream.java  |  19 +-
 .../catalina/connector/CoyoteOutputStream.java |  16 +-
 .../apache/catalina/connector/CoyotePrincipal.java |   7 +-
 .../apache/catalina/connector/CoyoteReader.java|  37 +-
 .../apache/catalina/connector/CoyoteWriter.java|   5 +-
 .../org/apache/catalina/connector/InputBuffer.java |  34 +-
 .../catalina/connector/LocalStrings.properties |   4 +
 .../apache/catalina/connector/OutputBuffer.java|  46 +-
 java/org/apache/catalina/connector/Request.java| 755 +
 .../apache/catalina/connector/RequestFacade.java   | 137 ++--
 java/org/apache/catalina/connector/Response.java   | 311 -
 .../apache/catalina/connector/ResponseFacade.java  |  23 +-
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 251 ---
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 ++---
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 ++-
 java/org/apache/coyote/http11/Http11Processor.java | 164 ++---
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 java/org/apache/coyote/http2/Stream.java   |   3 +-
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 +---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +-
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 514 ++
 test/org/apache/coyote/http2/Http2TestBase.java| 215 +++---
 .../apache/coyote/http2/TestAbstractStream.java| 107 ++-
 test/org/apache/coyote/http2/TestAsync.java|  19 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  27 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 +-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +-
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 +-
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_3.java  |  53 +-
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 +-
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 +-
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  72 +-
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +-
 test/org/apache/coyote/http2/TestLargeUpload.java  |  19 +-
 test/org/apache/coyote/http2/TestStream.java   |  32 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  47 +-
 .../apache/coyote/http2/TestStreamQueryString.java |  45 +-
 .../org/apache/coyote/http2/TesterHt

[tomcat] 05/06: Clean-up - formatting. No functional change.

2023-02-23 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 1b6c6c47010748dcec8f37e92546b172b3d17080
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:49:52 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 ++---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +--
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 506 -
 4 files changed, 237 insertions(+), 459 deletions(-)

diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index 9e8c5b43b0..40276619de 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -39,7 +39,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 private static final String CR = "\r";
 private static final String LF = "\n";
-private  static final String CRLF = CR + LF;
+private static final String CRLF = CR + LF;
 
 /**
  * Test case for https://bz.apache.org/bugzilla/show_bug.cgi?id=48839
@@ -76,13 +76,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 connect();
 
 String[] request = new String[1];
-request[0] =
-"GET http://localhost:8080/test HTTP/1.1" + CRLF +
-"Host: localhost:8080" + CRLF +
-"X-Bug48839: abcd" + CRLF +
-"\tefgh" + CRLF +
-"Connection: close" + CRLF +
-CRLF;
+request[0] = "GET http://localhost:8080/test HTTP/1.1" + CRLF 
+ "Host: localhost:8080" + CRLF +
+"X-Bug48839: abcd" + CRLF + "\tefgh" + CRLF + 
"Connection: close" + CRLF + CRLF;
 
 setRequest(request);
 processRequest(); // blocks until response has been read
@@ -116,8 +111,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
  * Only interested in the request headers from a GET request
  */
 @Override
-protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-throws ServletException, IOException {
+protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
 // Just echo the header value back as plain text
 resp.setContentType("text/plain");
 
@@ -167,9 +161,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 @Test
 public void testBug51557SeparatorsInName() throws Exception {
-char httpSeparators[] = new char[] {
-'\t', ' ', '\"', '(', ')', ',', '/', ':', ';', '<',
-'=', '>', '?', '@', '[', '\\', ']', '{', '}' };
+char httpSeparators[] = new char[] { '\t', ' ', '\"', '(', ')', ',', 
'/', ':', ';', '<', '=', '>', '?', '@',
+'[', '\\', ']', '{', '}' };
 
 for (char s : httpSeparators) {
 doTestBug51557CharInName(s);
@@ -222,8 +215,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557Continuation() {
 
-Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon",
-"foo" + SimpleHttpClient.CRLF + " bar");
+Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon", "foo" 
+ SimpleHttpClient.CRLF + " bar");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -235,8 +227,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryStart() {
 
-Bug51557Client client = new Bug51557Client("=X-Bug51557",
-"invalid");
+Bug51557Client client = new Bug51557Client("=X-Bug51557", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -248,8 +239,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryEnd() {
 
-Bug51557Client client = new Bug51557Client("X-Bug51557=",
-"invalid");
+Bug51557Client client = new Bug51557Client("X-Bug51557=", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -259,8 +249,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 
 private void doTestBug51557CharInName(char s) {
-Bug51557Client client =
-new Bug51557Client("X-Bug" + s + "51557", "invalid");
+Bug51557Client client = new Bug51557Client("X-Bug" + s + "51557", 
"invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -270,8 +259,7 @@ public class TestHttp11InputBuffer extends TomcatB

Buildbot failure in on tomcat-9.0.x

2023-02-23 Thread buildbot
Build status: BUILD FAILED: compile (failure)
Worker used: bb_worker2_ubuntu
URL: https://ci2.apache.org/#builders/37/builds/466
Blamelist: Mark Thomas 
Build Text: compile (failure)
Status Detected: new failure
Build Source Stamp: [branch 9.0.x] 9c38aac33ae02da550d459d011d3ffb030a46147


Steps:

  worker_preparation: 0

  git: 0

  shell: 0

  shell_1: 0

  shell_2: 0

  shell_3: 0

  shell_4: 0

  shell_5: 0

  compile: 2


-- ASF Buildbot


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] 02/06: Use i18n

2023-02-23 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 559606f331063be1bc7575f85d39e1c1efec995c
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:41:59 2023 +

Use i18n
---
 java/org/apache/catalina/connector/CoyoteAdapter.java  | 8 
 java/org/apache/catalina/connector/LocalStrings.properties | 3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index fc1f3b54de..4c9a08f576 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -632,7 +632,7 @@ public class CoyoteAdapter implements Adapter {
 connector.getService().getContainer().logAccess(request, 
response, 0, true);
 return false;
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -655,7 +655,7 @@ public class CoyoteAdapter implements Adapter {
 try {
 req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
 } catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURIWithMessage", ioe.getMessage()));
 }
 // Normalization
 if (normalize(req.decodedURI())) {
@@ -669,7 +669,7 @@ public class CoyoteAdapter implements Adapter {
 response.sendError(400, "Invalid URI");
 }
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 } else {
 /* The URI is chars or String, and has been sent using an 
in-memory
@@ -865,7 +865,7 @@ public class CoyoteAdapter implements Adapter {
 if (header != null) {
 res.addHeader("Allow", header);
 }
-response.sendError(405, "TRACE method is not allowed");
+response.sendError(405, sm.getString("coyoteAdapter.trace"));
 // Safe to skip the remainder of this method.
 return true;
 }
diff --git a/java/org/apache/catalina/connector/LocalStrings.properties 
b/java/org/apache/catalina/connector/LocalStrings.properties
index b6c5ca936b..eba56eb075 100644
--- a/java/org/apache/catalina/connector/LocalStrings.properties
+++ b/java/org/apache/catalina/connector/LocalStrings.properties
@@ -21,7 +21,10 @@ coyoteAdapter.checkRecycled.request=Encountered a 
non-recycled request and recyc
 coyoteAdapter.checkRecycled.response=Encountered a non-recycled response and 
recycled it forcedly.
 coyoteAdapter.connect=HTTP requests using the CONNECT method are not supported
 coyoteAdapter.debug=The variable [{0}] has value [{1}]
+coyoteAdapter.invalidURI=Invalid URI
+coyoteAdapter.invalidURIWithMessage=Invalid URI: [{0}]
 coyoteAdapter.nullRequest=An asynchronous dispatch may only happen on an 
existing request
+coyoteAdapter.trace=TRACE method is not allowed
 
 coyoteConnector.invalidEncoding=The encoding [{0}] is not recognised by the 
JRE. The Connector will continue to use [{1}]
 coyoteConnector.invalidPort=The connector cannot start since the specified 
port value of [{0}] is invalid


-
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 (9c38aac33a -> 83df6cd2e3)

2023-02-23 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 9c38aac33a Validate the scheme pseudo-header in HTTP/2
 new be6a92b625 Handle CONNECT with deliberate 501 rather than accidental 
400
 new 559606f331 Use i18n
 new 1f6c3d9f7a Clean-up - formatting. No functional change.
 new 6f88c5a31d Clean-up - formatting. No functional change.
 new 4faebc4038 Clean-up - formatting. No functional change.
 new 83df6cd2e3 Clean-up - formatting. No functional change.

The 6 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/connector/ClientAbortException.java   |  10 +-
 java/org/apache/catalina/connector/Connector.java  | 242 +++---
 .../apache/catalina/connector/CoyoteAdapter.java   | 322 
 .../catalina/connector/CoyoteInputStream.java  |  19 +-
 .../catalina/connector/CoyoteOutputStream.java |  16 +-
 .../apache/catalina/connector/CoyotePrincipal.java |   7 +-
 .../apache/catalina/connector/CoyoteReader.java|  37 +-
 .../apache/catalina/connector/CoyoteWriter.java|   5 +-
 .../org/apache/catalina/connector/InputBuffer.java |  34 +-
 .../catalina/connector/LocalStrings.properties |   4 +
 .../apache/catalina/connector/OutputBuffer.java|  50 +-
 java/org/apache/catalina/connector/Request.java| 837 +
 .../apache/catalina/connector/RequestFacade.java   | 143 ++--
 java/org/apache/catalina/connector/Response.java   | 345 -
 .../apache/catalina/connector/ResponseFacade.java  |  23 +-
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 368 +
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11AprProtocol.java|  34 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 ++--
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 ++-
 java/org/apache/coyote/http11/Http11Processor.java | 164 ++--
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 java/org/apache/coyote/http2/Stream.java   |   6 +-
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 +--
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +-
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 509 +
 test/org/apache/coyote/http2/Http2TestBase.java| 215 +++---
 .../apache/coyote/http2/TestAbstractStream.java|  72 +-
 test/org/apache/coyote/http2/TestAsync.java|  19 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  24 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 +-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +-
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 +-
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_3.java  |  53 +-
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 +-
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 +-
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  69 +-
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +-
 test/org/apache/coyote/http2/TestLargeUpload.java  |  14 +-
 test/org/apache/coyote/http2/TestStream.java   |  32 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  47 +-
 .../apache/coyote/http2/TestStreamQueryStr

[tomcat] 04/06: Clean-up - formatting. No functional change.

2023-02-23 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 6f88c5a31d06c91ddba975ad6af3e451e11eac6a
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:58:51 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 368 +
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11AprProtocol.java|  34 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 165 -
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   |  95 +++---
 java/org/apache/coyote/http11/Http11Processor.java | 164 -
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 12 files changed, 486 insertions(+), 415 deletions(-)

diff --git a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
index d8241a6bac..6f6fff40e8 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
@@ -19,18 +19,17 @@ package org.apache.coyote.http11;
 import org.apache.tomcat.util.net.AbstractJsseEndpoint;
 import org.apache.tomcat.util.net.openssl.OpenSSLImplementation;
 
-public abstract class AbstractHttp11JsseProtocol
-extends AbstractHttp11Protocol {
+public abstract class AbstractHttp11JsseProtocol extends 
AbstractHttp11Protocol {
 
-public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
+public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
 super(endpoint);
 }
 
 
 @Override
-protected AbstractJsseEndpoint getEndpoint() {
+protected AbstractJsseEndpoint getEndpoint() {
 // Over-ridden to add cast
-return (AbstractJsseEndpoint) super.getEndpoint();
+return (AbstractJsseEndpoint) super.getEndpoint();
 }
 
 
@@ -38,18 +37,26 @@ public abstract class AbstractHttp11JsseProtocol
 if 
(OpenSSLImplementation.class.getName().equals(getSslImplementationName())) {
 return "openssl";
 }
-if (getSslImplementationName() != null
-&& 
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
+if (getSslImplementationName() != null &&
+
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
 return "opensslforeign";
 }
 return "jsse";
 }
 
-public String getSslImplementationName() { return 
getEndpoint().getSslImplementationName(); }
-public void setSslImplementationName(String s) { 
getEndpoint().setSslImplementationName(s); }
+public String getSslImplementationName() {
+return getEndpoint().getSslImplementationName();
+}
+
+public void setSslImplementationName(String s) {
+getEndpoint().setSslImplementationName(s);
+}
 
 
-public int getSniParseLimit() { return getEndpoint().getSniParseLimit(); }
+public int getSniParseLimit() {
+return getEndpoint().getSniParseLimit();
+}
+
 public void setSniParseLimit(int sniParseLimit) {
 getEndpoint().setSniParseLimit(sniParseLimit);
 }
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 5526e0d12e..908ef0f9e3 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -52,13 +52,12 @@ import org.apache.tomcat.util.res.StringManager;
 
 public abstract class AbstractHttp11Protocol extends AbstractProtocol {
 
-protected static final StringManager sm =
-StringManager.getManager(AbstractHttp11Protocol.class);
+protected static final StringManager sm = 
StringManager.getManager(AbstractHttp11Protocol.class);
 
 private final CompressionConfig compressionConfig = new 
CompressionConfig();
 
 
-public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
+public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
 super(endpoint);
 setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
 }
@@ -114,7 +113,7 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
  * Over-ridden here to make the method visible to nested classes.
  */
 @Override
-protected AbstractEndpoint getEndpoint() {
+protected AbstractEndpoint getEndpoint() {
 return super.getEndpoint();
 }
 
@@ -123,61 +122,70 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
 /

[tomcat] 05/06: Clean-up - formatting. No functional change.

2023-02-23 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 4faebc4038ac22b17fac88a53ac5d3346c81247f
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:59:12 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 ++---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +--
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 501 -
 4 files changed, 235 insertions(+), 456 deletions(-)

diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index 94117a14a0..564e5001d5 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -39,7 +39,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 private static final String CR = "\r";
 private static final String LF = "\n";
-private  static final String CRLF = CR + LF;
+private static final String CRLF = CR + LF;
 
 /**
  * Test case for https://bz.apache.org/bugzilla/show_bug.cgi?id=48839
@@ -76,13 +76,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 connect();
 
 String[] request = new String[1];
-request[0] =
-"GET http://localhost:8080/test HTTP/1.1" + CRLF +
-"Host: localhost:8080" + CRLF +
-"X-Bug48839: abcd" + CRLF +
-"\tefgh" + CRLF +
-"Connection: close" + CRLF +
-CRLF;
+request[0] = "GET http://localhost:8080/test HTTP/1.1" + CRLF 
+ "Host: localhost:8080" + CRLF +
+"X-Bug48839: abcd" + CRLF + "\tefgh" + CRLF + 
"Connection: close" + CRLF + CRLF;
 
 setRequest(request);
 processRequest(); // blocks until response has been read
@@ -116,8 +111,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
  * Only interested in the request headers from a GET request
  */
 @Override
-protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-throws ServletException, IOException {
+protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
 // Just echo the header value back as plain text
 resp.setContentType("text/plain");
 
@@ -167,9 +161,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 @Test
 public void testBug51557SeparatorsInName() throws Exception {
-char httpSeparators[] = new char[] {
-'\t', ' ', '\"', '(', ')', ',', '/', ':', ';', '<',
-'=', '>', '?', '@', '[', '\\', ']', '{', '}' };
+char httpSeparators[] = new char[] { '\t', ' ', '\"', '(', ')', ',', 
'/', ':', ';', '<', '=', '>', '?', '@',
+'[', '\\', ']', '{', '}' };
 
 for (char s : httpSeparators) {
 doTestBug51557CharInName(s);
@@ -222,8 +215,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557Continuation() {
 
-Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon",
-"foo" + SimpleHttpClient.CRLF + " bar");
+Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon", "foo" 
+ SimpleHttpClient.CRLF + " bar");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -235,8 +227,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryStart() {
 
-Bug51557Client client = new Bug51557Client("=X-Bug51557",
-"invalid");
+Bug51557Client client = new Bug51557Client("=X-Bug51557", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -248,8 +239,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryEnd() {
 
-Bug51557Client client = new Bug51557Client("X-Bug51557=",
-"invalid");
+Bug51557Client client = new Bug51557Client("X-Bug51557=", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -259,8 +249,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 
 private void doTestBug51557CharInName(char s) {
-Bug51557Client client =
-new Bug51557Client("X-Bug" + s + "51557", "invalid");
+Bug51557Client client = new Bug51557Client("X-Bug" + s + "51557", 
"invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -270,8 +259,7 @@ public class TestHttp11InputBuffer extends TomcatBa

[tomcat] 01/06: Handle CONNECT with deliberate 501 rather than accidental 400

2023-02-23 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 be6a92b6256ed6ebc86e329e7b54ed9730b2ba4a
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:37:30 2023 +

Handle CONNECT with deliberate 501 rather than accidental 400
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 84 --
 .../catalina/connector/LocalStrings.properties |  1 +
 java/org/apache/coyote/http2/Stream.java   |  6 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 18 +
 .../apache/coyote/http2/TestStreamProcessor.java   | 23 ++
 webapps/docs/changelog.xml |  4 ++
 6 files changed, 95 insertions(+), 41 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index f9263b685d..fc1f3b54de 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -638,49 +638,55 @@ public class CoyoteAdapter implements Adapter {
 
 MessageBytes decodedURI = req.decodedURI();
 
-if (undecodedURI.getType() == MessageBytes.T_BYTES) {
-// Copy the raw URI to the decodedURI
-decodedURI.duplicate(undecodedURI);
+// Filter CONNECT method
+if (req.method().equalsIgnoreCase("CONNECT")) {
+response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, 
sm.getString("coyoteAdapter.connect"));
+} else {
+// No URI for CONNECT requests
+if (undecodedURI.getType() == MessageBytes.T_BYTES) {
+// Copy the raw URI to the decodedURI
+decodedURI.duplicate(undecodedURI);
 
-// Parse (and strip out) the path parameters
-parsePathParameters(req, request);
+// Parse (and strip out) the path parameters
+parsePathParameters(req, request);
 
-// URI decoding
-// %xx decoding of the URL
-try {
-req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
-} catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + ioe.getMessage());
-}
-// Normalization
-if (normalize(req.decodedURI())) {
-// Character decoding
-convertURI(decodedURI, request);
-// Check that the URI is still normalized
-// Note: checkNormalize is deprecated because the test is no
-//   longer required in Tomcat 10 onwards and has been
-//   removed
-if (!checkNormalize(req.decodedURI())) {
+// URI decoding
+// %xx decoding of the URL
+try {
+req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
+} catch (IOException ioe) {
+response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+}
+// Normalization
+if (normalize(req.decodedURI())) {
+// Character decoding
+convertURI(decodedURI, request);
+// Check that the URI is still normalized
+// Note: checkNormalize is deprecated because the test is 
no
+//   longer required in Tomcat 10 onwards and has been
+//   removed
+if (!checkNormalize(req.decodedURI())) {
+response.sendError(400, "Invalid URI");
+}
+} else {
 response.sendError(400, "Invalid URI");
 }
 } else {
-response.sendError(400, "Invalid URI");
-}
-} else {
-/* The URI is chars or String, and has been sent using an in-memory
- * protocol handler. The following assumptions are made:
- * - req.requestURI() has been set to the 'original' non-decoded,
- *   non-normalized URI
- * - req.decodedURI() has been set to the decoded, normalized form
- *   of req.requestURI()
- */
-decodedURI.toChars();
-// Remove all path parameters; any needed path parameter should be 
set
-// using the request object rather than passing it in the URL
-CharChunk uriCC = decodedURI.getCharChunk();
-int semicolon = uriCC.indexOf(';');
-if (semicolon > 0) {
-decodedURI.setChars(uriCC.getBuffer(), uriCC.getStart(), 
semicolon);
+/* The URI is chars or String, and has been sent using an 
in-memory
+ * protocol handler. The following assumpti

[tomcat] 06/06: Clean-up - formatting. No functional change.

2023-02-23 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 83df6cd2e356dea165f5dbeb0fa5dad51cfb72b9
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:59:19 2023 +

Clean-up - formatting. No functional change.
---
 test/org/apache/coyote/http2/Http2TestBase.java| 215 +++
 .../apache/coyote/http2/TestAbstractStream.java|  72 ++---
 test/org/apache/coyote/http2/TestAsync.java|  19 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  24 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 ++-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 ++---
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +--
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 ++--
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_3.java  |  53 ++--
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 ++--
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 ++---
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  69 ++---
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +---
 test/org/apache/coyote/http2/TestLargeUpload.java  |  14 +-
 test/org/apache/coyote/http2/TestStream.java   |  32 +--
 .../apache/coyote/http2/TestStreamProcessor.java   |  26 +-
 .../apache/coyote/http2/TestStreamQueryString.java |  45 +---
 .../org/apache/coyote/http2/TesterHttp2Parser.java |   6 +-
 36 files changed, 531 insertions(+), 808 deletions(-)

diff --git a/test/org/apache/coyote/http2/Http2TestBase.java 
b/test/org/apache/coyote/http2/Http2TestBase.java
index 313bff6cc2..f03ba03b6d 100644
--- a/test/org/apache/coyote/http2/Http2TestBase.java
+++ b/test/org/apache/coyote/http2/Http2TestBase.java
@@ -63,8 +63,7 @@ import org.apache.tomcat.util.http.MimeHeaders;
 import org.apache.tomcat.util.net.TesterSupport;
 
 /**
- * Tests for compliance with the https://tools.ietf.org/html/rfc7540";>
- * HTTP/2 specification.
+ * Tests for compliance with the https://tools.ietf.org/html/rfc7540";> HTTP/2 specification.
  */
 @RunWith(Parameterized.class)
 public abstract class Http2TestBase extends TomcatBaseTest {
@@ -98,8 +97,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 private static final String HEADER_IGNORED = "x-ignore";
 
 static final String DEFAULT_CONNECTION_HEADER_VALUE = "Upgrade, 
HTTP2-Settings";
-private static final byte[] EMPTY_SETTINGS_FRAME =
-{ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
+private static final byte[] EMPTY_SETTINGS_FRAME = { 0x00, 0x00, 0x00, 
0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
 static final String EMPTY_HTTP2_SETTINGS_HEADER;
 
 static {
@@ -129,8 +127,8 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 }
 
 /**
- * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures
- * that the first response is correctly received.
+ * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures 
that the first response is correctly
+ * received.
  */
 protected void http2Connect() throws Exception {
 http2Connect(false);
@@ -165,12 +163,8 @@ public abstract class Http2TestBase extends TomcatBaseTest 
{
 parser.readFrame();
 parser.readFrame();
 
-Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" +
-"0-Settings-End\n" +
-"0-Settings-Ack\n" +
-"0-Ping-[0,0,0,0,0,0,0,1]\n" +
-getSimpleResponseTrace(1)
-, output.getTrace());
+Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" 
+ "0-Settings-End\n" +
+"0-Settings-Ack\n" + "0-Ping-[0,0,0,0,0,0,0,1]\n" + 
getSimpleResponseTrace(1), output.getTrace());
 output.clearTrace();
 }
 

[tomcat] 01/06: Handle CONNECT with deliberate 501 rather than accidental 400

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 242196a8af1c7ab8a865c56e4852c7b5d648cd17
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:37:30 2023 +

Handle CONNECT with deliberate 501 rather than accidental 400
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 78 --
 .../catalina/connector/LocalStrings.properties |  1 +
 java/org/apache/coyote/http2/Stream.java   |  6 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 18 +
 .../apache/coyote/http2/TestStreamProcessor.java   | 23 +++
 webapps/docs/changelog.xml |  4 ++
 6 files changed, 92 insertions(+), 38 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index ed5d5fc31d..104a83f3e4 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -645,46 +645,52 @@ public class CoyoteAdapter implements Adapter {
 
 MessageBytes decodedURI = req.decodedURI();
 
-if (undecodedURI.getType() == MessageBytes.T_BYTES) {
-// Copy the raw URI to the decodedURI
-decodedURI.duplicate(undecodedURI);
+// Filter CONNECT method
+if (req.method().equalsIgnoreCase("CONNECT")) {
+response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, 
sm.getString("coyoteAdapter.connect"));
+} else {
+// No URI for CONNECT requests
+if (undecodedURI.getType() == MessageBytes.T_BYTES) {
+// Copy the raw URI to the decodedURI
+decodedURI.duplicate(undecodedURI);
 
-// Parse (and strip out) the path parameters
-parsePathParameters(req, request);
+// Parse (and strip out) the path parameters
+parsePathParameters(req, request);
 
-// URI decoding
-// %xx decoding of the URL
-try {
-req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
-} catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + ioe.getMessage());
-}
-// Normalization
-if (normalize(req.decodedURI())) {
-// Character decoding
-convertURI(decodedURI, request);
-// Check that the URI is still normalized
-if (!checkNormalize(req.decodedURI())) {
+// URI decoding
+// %xx decoding of the URL
+try {
+req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
+} catch (IOException ioe) {
+response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+}
+// Normalization
+if (normalize(req.decodedURI())) {
+// Character decoding
+convertURI(decodedURI, request);
+// Check that the URI is still normalized
+if (!checkNormalize(req.decodedURI())) {
+response.sendError(400, "Invalid URI");
+}
+} else {
 response.sendError(400, "Invalid URI");
 }
 } else {
-response.sendError(400, "Invalid URI");
-}
-} else {
-/* The URI is chars or String, and has been sent using an in-memory
- * protocol handler. The following assumptions are made:
- * - req.requestURI() has been set to the 'original' non-decoded,
- *   non-normalized URI
- * - req.decodedURI() has been set to the decoded, normalized form
- *   of req.requestURI()
- */
-decodedURI.toChars();
-// Remove all path parameters; any needed path parameter should be 
set
-// using the request object rather than passing it in the URL
-CharChunk uriCC = decodedURI.getCharChunk();
-int semicolon = uriCC.indexOf(';');
-if (semicolon > 0) {
-decodedURI.setChars(uriCC.getBuffer(), uriCC.getStart(), 
semicolon);
+/* The URI is chars or String, and has been sent using an 
in-memory
+ * protocol handler. The following assumptions are made:
+ * - req.requestURI() has been set to the 'original' 
non-decoded,
+ *   non-normalized URI
+ * - req.decodedURI() has been set to the decoded, normalized 
form
+ *   of req.requestURI()
+ */
+decodedURI.toChars();
+// Remove all path parameters; any needed pat

[tomcat] 04/06: Clean-up - formatting. No functional change.

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 0cbd2e470658e51ed47df7807315156f1ca56239
Author: Mark Thomas 
AuthorDate: Thu Feb 23 17:05:49 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 367 ++---
 java/org/apache/coyote/http11/Constants.java   |   6 +-
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11AprProtocol.java|  34 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 168 --
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   | 111 +++
 java/org/apache/coyote/http11/Http11Processor.java | 227 ++---
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 13 files changed, 521 insertions(+), 467 deletions(-)

diff --git a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
index d8241a6bac..6f6fff40e8 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
@@ -19,18 +19,17 @@ package org.apache.coyote.http11;
 import org.apache.tomcat.util.net.AbstractJsseEndpoint;
 import org.apache.tomcat.util.net.openssl.OpenSSLImplementation;
 
-public abstract class AbstractHttp11JsseProtocol
-extends AbstractHttp11Protocol {
+public abstract class AbstractHttp11JsseProtocol extends 
AbstractHttp11Protocol {
 
-public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
+public AbstractHttp11JsseProtocol(AbstractJsseEndpoint endpoint) {
 super(endpoint);
 }
 
 
 @Override
-protected AbstractJsseEndpoint getEndpoint() {
+protected AbstractJsseEndpoint getEndpoint() {
 // Over-ridden to add cast
-return (AbstractJsseEndpoint) super.getEndpoint();
+return (AbstractJsseEndpoint) super.getEndpoint();
 }
 
 
@@ -38,18 +37,26 @@ public abstract class AbstractHttp11JsseProtocol
 if 
(OpenSSLImplementation.class.getName().equals(getSslImplementationName())) {
 return "openssl";
 }
-if (getSslImplementationName() != null
-&& 
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
+if (getSslImplementationName() != null &&
+
getSslImplementationName().endsWith(".panama.OpenSSLImplementation")) {
 return "opensslforeign";
 }
 return "jsse";
 }
 
-public String getSslImplementationName() { return 
getEndpoint().getSslImplementationName(); }
-public void setSslImplementationName(String s) { 
getEndpoint().setSslImplementationName(s); }
+public String getSslImplementationName() {
+return getEndpoint().getSslImplementationName();
+}
+
+public void setSslImplementationName(String s) {
+getEndpoint().setSslImplementationName(s);
+}
 
 
-public int getSniParseLimit() { return getEndpoint().getSniParseLimit(); }
+public int getSniParseLimit() {
+return getEndpoint().getSniParseLimit();
+}
+
 public void setSniParseLimit(int sniParseLimit) {
 getEndpoint().setSniParseLimit(sniParseLimit);
 }
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 
b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 82d0a7166e..a337f07234 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -53,13 +53,12 @@ import org.apache.tomcat.util.res.StringManager;
 
 public abstract class AbstractHttp11Protocol extends AbstractProtocol {
 
-protected static final StringManager sm =
-StringManager.getManager(AbstractHttp11Protocol.class);
+protected static final StringManager sm = 
StringManager.getManager(AbstractHttp11Protocol.class);
 
 private final CompressionConfig compressionConfig = new 
CompressionConfig();
 
 
-public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
+public AbstractHttp11Protocol(AbstractEndpoint endpoint) {
 super(endpoint);
 setConnectionTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
 }
@@ -117,7 +116,7 @@ public abstract class AbstractHttp11Protocol extends 
AbstractProtocol {
  * Over-ridden here to make the method visible to nested classes.
  */
 @Override
-protected AbstractEndpoint getEndpoint() {
+protected AbstractEndpoint getEndpoint() {
 return super.getEndpoint();
 }
 
@@ -126,61 +125,70 @@ public abstr

[tomcat] 05/06: Clean-up - formatting. No functional change.

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 96da1136f41449e940abc12eced3985367a57a12
Author: Mark Thomas 
AuthorDate: Thu Feb 23 17:06:01 2023 +

Clean-up - formatting. No functional change.
---
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 ++---
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +--
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 504 -
 4 files changed, 236 insertions(+), 458 deletions(-)

diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index 46e6ccefc2..104f2b4724 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -39,7 +39,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 private static final String CR = "\r";
 private static final String LF = "\n";
-private  static final String CRLF = CR + LF;
+private static final String CRLF = CR + LF;
 
 /**
  * Test case for https://bz.apache.org/bugzilla/show_bug.cgi?id=48839
@@ -76,13 +76,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 connect();
 
 String[] request = new String[1];
-request[0] =
-"GET http://localhost:8080/test HTTP/1.1" + CRLF +
-"Host: localhost:8080" + CRLF +
-"X-Bug48839: abcd" + CRLF +
-"\tefgh" + CRLF +
-"Connection: close" + CRLF +
-CRLF;
+request[0] = "GET http://localhost:8080/test HTTP/1.1" + CRLF 
+ "Host: localhost:8080" + CRLF +
+"X-Bug48839: abcd" + CRLF + "\tefgh" + CRLF + 
"Connection: close" + CRLF + CRLF;
 
 setRequest(request);
 processRequest(); // blocks until response has been read
@@ -116,8 +111,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
  * Only interested in the request headers from a GET request
  */
 @Override
-protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-throws ServletException, IOException {
+protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
 // Just echo the header value back as plain text
 resp.setContentType("text/plain");
 
@@ -167,9 +161,8 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 @Test
 public void testBug51557SeparatorsInName() throws Exception {
-char httpSeparators[] = new char[] {
-'\t', ' ', '\"', '(', ')', ',', '/', ':', ';', '<',
-'=', '>', '?', '@', '[', '\\', ']', '{', '}' };
+char httpSeparators[] = new char[] { '\t', ' ', '\"', '(', ')', ',', 
'/', ':', ';', '<', '=', '>', '?', '@',
+'[', '\\', ']', '{', '}' };
 
 for (char s : httpSeparators) {
 doTestBug51557CharInName(s);
@@ -222,8 +215,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557Continuation() {
 
-Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon",
-"foo" + SimpleHttpClient.CRLF + " bar");
+Bug51557Client client = new Bug51557Client("X-Bug=51557NoColon", "foo" 
+ SimpleHttpClient.CRLF + " bar");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -235,8 +227,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryStart() {
 
-Bug51557Client client = new Bug51557Client("=X-Bug51557",
-"invalid");
+Bug51557Client client = new Bug51557Client("=X-Bug51557", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -248,8 +239,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 @Test
 public void testBug51557BoundaryEnd() {
 
-Bug51557Client client = new Bug51557Client("X-Bug51557=",
-"invalid");
+Bug51557Client client = new Bug51557Client("X-Bug51557=", "invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -259,8 +249,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
 
 
 private void doTestBug51557CharInName(char s) {
-Bug51557Client client =
-new Bug51557Client("X-Bug" + s + "51557", "invalid");
+Bug51557Client client = new Bug51557Client("X-Bug" + s + "51557", 
"invalid");
 
 client.doRequest();
 Assert.assertTrue(client.isResponse200());
@@ -270,8 +259,7 @@ public class TestHttp11InputBuffer extends TomcatBa

[tomcat] branch 8.5.x updated (2b51e32a60 -> 269b83e1b6)

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


from 2b51e32a60 Validate the scheme pseudo-header in HTTP/2
 new 242196a8af Handle CONNECT with deliberate 501 rather than accidental 
400
 new 0dc38c964f Use i18n
 new 04cc1839fa Clean-up - formatting. No functional change.
 new 0cbd2e4706 Clean-up - formatting. No functional change.
 new 96da1136f4 Clean-up - formatting. No functional change.
 new 269b83e1b6 Clean-up - formatting. No functional change.

The 6 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/connector/ClientAbortException.java   |  10 +-
 java/org/apache/catalina/connector/Connector.java  | 255 +++---
 .../apache/catalina/connector/CoyoteAdapter.java   | 323 
 .../catalina/connector/CoyoteInputStream.java  |  76 +-
 .../catalina/connector/CoyoteOutputStream.java |  16 +-
 .../apache/catalina/connector/CoyotePrincipal.java |   7 +-
 .../apache/catalina/connector/CoyoteReader.java|  37 +-
 .../apache/catalina/connector/CoyoteWriter.java|   5 +-
 .../org/apache/catalina/connector/InputBuffer.java |  33 +-
 .../catalina/connector/LocalStrings.properties |   4 +
 .../apache/catalina/connector/OutputBuffer.java|  49 +-
 java/org/apache/catalina/connector/Request.java| 854 +
 .../apache/catalina/connector/RequestFacade.java   | 143 ++--
 java/org/apache/catalina/connector/Response.java   | 343 -
 .../apache/catalina/connector/ResponseFacade.java  |  23 +-
 .../coyote/http11/AbstractHttp11JsseProtocol.java  |  27 +-
 .../coyote/http11/AbstractHttp11Protocol.java  | 367 ++---
 java/org/apache/coyote/http11/Constants.java   |   6 +-
 .../coyote/http11/HeadersTooLargeException.java|   3 +-
 .../apache/coyote/http11/Http11AprProtocol.java|  34 +-
 .../apache/coyote/http11/Http11InputBuffer.java| 168 ++--
 .../apache/coyote/http11/Http11Nio2Protocol.java   |   6 +-
 .../apache/coyote/http11/Http11NioProtocol.java|  14 +-
 .../apache/coyote/http11/Http11OutputBuffer.java   | 111 ++-
 java/org/apache/coyote/http11/Http11Processor.java | 227 +++---
 .../org/apache/coyote/http11/HttpOutputBuffer.java |   5 +-
 java/org/apache/coyote/http11/InputFilter.java |  15 +-
 java/org/apache/coyote/http11/OutputFilter.java|   5 +-
 java/org/apache/coyote/http2/Stream.java   |   6 +-
 .../coyote/http11/TestHttp11InputBuffer.java   | 122 +--
 .../coyote/http11/TestHttp11InputBufferCRLF.java   |  66 +-
 .../coyote/http11/TestHttp11OutputBuffer.java  |   2 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 512 +---
 test/org/apache/coyote/http2/Http2TestBase.java| 218 +++---
 .../apache/coyote/http2/TestAbstractStream.java|  72 +-
 test/org/apache/coyote/http2/TestAsync.java|  22 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  24 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 +-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 ---
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +-
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 +-
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_3.java  |  53 +-
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 +-
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 +-
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  69 +-
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +-
 test/org/apache/coyote/http2/TestLargeUpload.java  |   4 +-
 test/org/apache/coyote/http2/TestStream.java   |  14 +-
 .../apache/coyote/http2/TestStreamProcesso

[tomcat] 02/06: Use i18n

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 0dc38c964fc2d9aaddbb9564fff33551e74a6585
Author: Mark Thomas 
AuthorDate: Thu Feb 23 16:41:59 2023 +

Use i18n
---
 java/org/apache/catalina/connector/CoyoteAdapter.java  | 8 
 java/org/apache/catalina/connector/LocalStrings.properties | 3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 104a83f3e4..9c0d524489 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -639,7 +639,7 @@ public class CoyoteAdapter implements Adapter {
 connector.getService().getContainer().logAccess(request, 
response, 0, true);
 return false;
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 }
 
@@ -662,7 +662,7 @@ public class CoyoteAdapter implements Adapter {
 try {
 req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
 } catch (IOException ioe) {
-response.sendError(400, "Invalid URI: " + 
ioe.getMessage());
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURIWithMessage", ioe.getMessage()));
 }
 // Normalization
 if (normalize(req.decodedURI())) {
@@ -673,7 +673,7 @@ public class CoyoteAdapter implements Adapter {
 response.sendError(400, "Invalid URI");
 }
 } else {
-response.sendError(400, "Invalid URI");
+response.sendError(400, 
sm.getString("coyoteAdapter.invalidURI"));
 }
 } else {
 /* The URI is chars or String, and has been sent using an 
in-memory
@@ -869,7 +869,7 @@ public class CoyoteAdapter implements Adapter {
 if (header != null) {
 res.addHeader("Allow", header);
 }
-response.sendError(405, "TRACE method is not allowed");
+response.sendError(405, sm.getString("coyoteAdapter.trace"));
 // Safe to skip the remainder of this method.
 return true;
 }
diff --git a/java/org/apache/catalina/connector/LocalStrings.properties 
b/java/org/apache/catalina/connector/LocalStrings.properties
index 7d09d69279..f511e2e836 100644
--- a/java/org/apache/catalina/connector/LocalStrings.properties
+++ b/java/org/apache/catalina/connector/LocalStrings.properties
@@ -21,7 +21,10 @@ coyoteAdapter.checkRecycled.request=Encountered a 
non-recycled request and recyc
 coyoteAdapter.checkRecycled.response=Encountered a non-recycled response and 
recycled it forcedly.
 coyoteAdapter.connect=HTTP requests using the CONNECT method are not supported
 coyoteAdapter.debug=The variable [{0}] has value [{1}]
+coyoteAdapter.invalidURI=Invalid URI
+coyoteAdapter.invalidURIWithMessage=Invalid URI: [{0}]
 coyoteAdapter.nullRequest=An asynchronous dispatch may only happen on an 
existing request
+coyoteAdapter.trace=TRACE method is not allowed
 
 coyoteConnector.invalidEncoding=The encoding [{0}] is not recognised by the 
JRE. The Connector will continue to use [{1}]
 coyoteConnector.invalidPort=The connector cannot start since the specified 
port value of [{0}] is invalid


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] 06/06: Clean-up - formatting. No functional change.

2023-02-23 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 269b83e1b60a2ec1c43fa67bbc899b1fa836ac62
Author: Mark Thomas 
AuthorDate: Thu Feb 23 17:06:10 2023 +

Clean-up - formatting. No functional change.
---
 test/org/apache/coyote/http2/Http2TestBase.java| 218 +++
 .../apache/coyote/http2/TestAbstractStream.java|  72 ++---
 test/org/apache/coyote/http2/TestAsync.java|  22 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |   5 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |   3 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  24 +-
 test/org/apache/coyote/http2/TestFlowControl.java  |  20 +-
 test/org/apache/coyote/http2/TestHpack.java|   8 +-
 .../coyote/http2/TestHttp2InitialConnection.java   |  40 ++-
 test/org/apache/coyote/http2/TestHttp2Limits.java  | 294 ++---
 .../apache/coyote/http2/TestHttp2Section_3_2.java  |  31 +--
 .../apache/coyote/http2/TestHttp2Section_3_5.java  |   4 +-
 .../apache/coyote/http2/TestHttp2Section_4_1.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_4_2.java  |  14 +-
 .../apache/coyote/http2/TestHttp2Section_4_3.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_5_1.java  |  55 ++--
 .../apache/coyote/http2/TestHttp2Section_5_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_5_3.java  |  53 ++--
 .../apache/coyote/http2/TestHttp2Section_5_5.java  |   9 +-
 .../apache/coyote/http2/TestHttp2Section_6_1.java  |  50 ++--
 .../apache/coyote/http2/TestHttp2Section_6_2.java  |  13 +-
 .../apache/coyote/http2/TestHttp2Section_6_3.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_4.java  |  10 +-
 .../apache/coyote/http2/TestHttp2Section_6_5.java  |  22 +-
 .../apache/coyote/http2/TestHttp2Section_6_6.java  |   5 +-
 .../apache/coyote/http2/TestHttp2Section_6_7.java  |   7 +-
 .../apache/coyote/http2/TestHttp2Section_6_8.java  |  11 +-
 .../apache/coyote/http2/TestHttp2Section_6_9.java  |  63 ++---
 .../apache/coyote/http2/TestHttp2Section_8_1.java  |  69 ++---
 .../org/apache/coyote/http2/TestHttp2Timeouts.java |  10 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java  |  46 +---
 test/org/apache/coyote/http2/TestLargeUpload.java  |   4 +-
 test/org/apache/coyote/http2/TestStream.java   |  14 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  26 +-
 .../apache/coyote/http2/TestStreamQueryString.java |  43 +--
 .../org/apache/coyote/http2/TesterHttp2Parser.java |   3 +-
 36 files changed, 522 insertions(+), 790 deletions(-)

diff --git a/test/org/apache/coyote/http2/Http2TestBase.java 
b/test/org/apache/coyote/http2/Http2TestBase.java
index 306d57f084..e02486d06d 100644
--- a/test/org/apache/coyote/http2/Http2TestBase.java
+++ b/test/org/apache/coyote/http2/Http2TestBase.java
@@ -58,8 +58,7 @@ import org.apache.tomcat.util.http.MimeHeaders;
 import org.apache.tomcat.util.net.TesterSupport;
 
 /**
- * Tests for compliance with the https://tools.ietf.org/html/rfc7540";>
- * HTTP/2 specification.
+ * Tests for compliance with the https://tools.ietf.org/html/rfc7540";> HTTP/2 specification.
  */
 @org.junit.runner.RunWith(org.junit.runners.Parameterized.class)
 public abstract class Http2TestBase extends TomcatBaseTest {
@@ -78,8 +77,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 private static final String HEADER_IGNORED = "x-ignore";
 
 static final String DEFAULT_CONNECTION_HEADER_VALUE = "Upgrade, 
HTTP2-Settings";
-private static final byte[] EMPTY_SETTINGS_FRAME =
-{ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
+private static final byte[] EMPTY_SETTINGS_FRAME = { 0x00, 0x00, 0x00, 
0x04, 0x00, 0x00, 0x00, 0x00, 0x00 };
 static final String EMPTY_HTTP2_SETTINGS_HEADER;
 
 static {
@@ -109,8 +107,8 @@ public abstract class Http2TestBase extends TomcatBaseTest {
 }
 
 /**
- * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures
- * that the first response is correctly received.
+ * Standard setup. Creates HTTP/2 connection via HTTP upgrade and ensures 
that the first response is correctly
+ * received.
  */
 protected void http2Connect() throws Exception {
 http2Connect(false);
@@ -145,12 +143,8 @@ public abstract class Http2TestBase extends TomcatBaseTest 
{
 parser.readFrame();
 parser.readFrame();
 
-Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" +
-"0-Settings-End\n" +
-"0-Settings-Ack\n" +
-"0-Ping-[0,0,0,0,0,0,0,1]\n" +
-getSimpleResponseTrace(1)
-, output.getTrace());
+Assert.assertEquals("0-Settings-[3]-[" + maxConcurrentStreams + "]\n" 
+ "0-Settings-End\n" +
+"0-Settings-Ack\n" + "0-Ping-[0,0,0,0,0,0,0,1]\n" + 
getSimpleResponseTrace(1), output.getTrace());
 

Buildbot success in on tomcat-9.0.x

2023-02-23 Thread buildbot
Build status: Build succeeded!
Worker used: bb_worker2_ubuntu
URL: https://ci2.apache.org/#builders/37/builds/467
Blamelist: Mark Thomas 
Build Text: build successful
Status Detected: restored build
Build Source Stamp: [branch 9.0.x] 83df6cd2e356dea165f5dbeb0fa5dad51cfb72b9


Steps:

  worker_preparation: 0

  git: 0

  shell: 0

  shell_1: 0

  shell_2: 0

  shell_3: 0

  shell_4: 0

  shell_5: 0

  compile: 1

  shell_6: 0

  shell_7: 0

  shell_8: 0

  shell_9: 0

  Rsync docs to nightlies.apache.org: 0

  shell_10: 0

  Rsync RAT to nightlies.apache.org: 0

  compile_1: 1

  shell_11: 0

  Rsync Logs to nightlies.apache.org: 0


-- ASF Buildbot


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [VOTE] Release Apache Tomcat 10.1.6

2023-02-23 Thread Konstantin Kolinko
вс, 19 февр. 2023 г. в 17:11, Christopher Schultz
:
>
> The proposed Apache Tomcat 10.1.6 release is now available for
> voting.
>
> The notable changes compared to 10.1.5 are:
>
> - Switch to using the ServiceLoader mechanism to load the custom URL
>protocol handlers that Tomcat uses.
>
> - Update the packaged version of the Apache Tomcat Native Library to
>2.0.3 to pick up the Windows binaries built with with OpenSSL 3.0.8.
>
> - Add the shared address space specified by RFC 6598 (100.64.0.0/10)
>to the list of trusted proxies for RemoteIPValve/Filter.
>
> - Limit access to examples web application to localhost by default
and documentation

>
> For full details, see the change log:
> https://nightlies.apache.org/tomcat/tomcat-10.1.x/docs/changelog.html
>
> Applications that run on Tomcat 9 and earlier will not run on Tomcat 10
> without changes. Java EE applications designed for Tomcat 9 and earlier
> may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat
> will automatically convert them to Jakarta EE and copy them to the
> webapps directory.
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-10/v10.1.6/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1421
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.6
> 9829c929059f96605a3fb870700b5887970d7203
>
> The proposed 10.1.6 release is:
> [ ] Broken - do not release
> [x] Stable - go ahead and release as 10.1.6

Smoke tests OK with Java 11.0.18.
Unit tests OK, all connectors (NIO, NIO2), with or without Tomcat
Native, with Java 11.0.18.
on Windows 10.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org