RE: [VOTE] Release Apache Tomcat 9.0.56

2021-12-03 Thread Усманов Азат Анварович
"The notable changes compared to 9.0.56 are:"
I assume the above line should read the following, right?
 The notable changes compared to 9.0.55 are
С уважением,
Азат Усманов
Отдел разработки программного обеспечения
Казанский инновационный университет имени В.Г.Тимирясова



[Bug 57129] Regression. Load WEB-INF/lib jarfiles in alphabetical order

2021-12-03 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57129

--- Comment #47 from Y. Savanier  ---
Nice try but no, I've always run my webapps on linux machines and the Tomcat
handling of jars at loading was always alphabeticaly ordered as far as I can
remember which is what I'm talking about here (if you read my previous message
correctly, I'm well aware that the handling on others webservers like Websphere
or JBoss is unordered and fs dependent).

For example this is the source code for the tomcat 4.0 FileDirContext list
method in 2001 :

protected Vector list(File file) {

Vector entries = new Vector();
if (!file.isDirectory())
return entries;
String[] names = file.list();
Arrays.sort(names); // Sort alphabetically


So yeah, from early 2000 to 2014 appears like more than 10 years to me.

Cheers.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 57129] Regression. Load WEB-INF/lib jarfiles in alphabetical order

2021-12-03 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57129

--- Comment #46 from Konstantin Kolinko  ---
(In reply to Y. Savanier from comment #45)
> 
> For god sake, why was it so important to break a behaviour that was
> consistent for at least 10 years

You are wrong. The behavour was not consistent, even 10+ years ago. If you have
ever run your app on servers with different file systems (e.g. on Linux vs on
Windows), you would have noticed it right away.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
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.0.14

2021-12-03 Thread Mark Thomas

On 02/12/2021 22:21, Mark Thomas wrote:




The proposed 10.0.14 release is:
[ ] Broken - do not release
[X] Stable - go ahead and release as 10.0.14 (stable)


Unit tests passed on Windows, Linux and MacOS with NIO, NIO2 and 
APR/Native using Tomcat Native 1.2.31.


Mark

-
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.0-M8

2021-12-03 Thread Mark Thomas

On 02/12/2021 14:44, Mark Thomas wrote:




The proposed 10.1.0-M8 release is:
[ ] Broken - do not release
[X] Alpha - go ahead and release as 10.1.0-M8 (alpha)


Unit tests passed on Windows, Linux and MacOS with NIO and NIO2 using 
Tomcat Native 1.2.31.


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 missing state check

2021-12-03 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new ecda61a  Add missing state check
ecda61a is described below

commit ecda61a54e6755263349a12607eff73e8f579aa8
Author: Mark Thomas 
AuthorDate: Fri Dec 3 17:46:01 2021 +

Add missing state check
---
 .../org/apache/catalina/core/ApplicationSessionCookieConfig.java | 5 +
 webapps/docs/changelog.xml   | 9 +
 2 files changed, 14 insertions(+)

diff --git a/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java 
b/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
index ae876f7..b83647e 100644
--- a/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
+++ b/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
@@ -168,6 +168,11 @@ public class ApplicationSessionCookieConfig implements 
SessionCookieConfig {
 
 @Override
 public void setAttribute(String name, String value) {
+if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
+throw new IllegalStateException(sm.getString(
+"applicationSessionCookieConfig.ise", name,
+context.getPath()));
+}
 attributes.put(name, value);
 }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 5d231bf..9d578b3 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -105,6 +105,15 @@
   issues do not "pop up" wrt. others).
 -->
 
+  
+
+  
+Add missing check in SessionCookieConfig.setSttribute() to
+ensure that the method fails if called after the web application has
+started. (markt)
+  
+
+  
 
 
   

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



[Bug 57129] Regression. Load WEB-INF/lib jarfiles in alphabetical order

2021-12-03 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=57129

--- Comment #45 from Y. Savanier  ---
Oh my god this is just a gem that I got unnoticed until now...

It explain so much of the random behaviour we started to have on our legacy
webapps since 2 years now when we ingenuously upgraded from Tomcat 7 to 9 !

Now we were so freaked that a new deployment would break everything that we
didn't released even security fixes for those webapps unless it is an absolute
case of force majeure !

We even had to put multiple test cases at server startup to ensure the
behaviour of the webapps was consistent with what it was on our test platforms,
that was so a sick thing to do ! And now we can finaly put a word onto this
mess !

For god sake, why was it so important to break a behaviour that was consistent
for at least 10 years and was known to many even if not mentioned anywhere in
the specs, only by pure rigorism or even "fundamentalist" as the term was
rightly pinned in a previous comment ?

How can a 17 characters sort instruction, that was there for as long I can
recall using tomcat, be considered as a threat to be removed while it was
providing consistency whatever operating and file system was used ?

I can still remember having to cope with those classloading madness on JBoss in
2006 and the relief it was when our organisation decided to migrate to Tomcat
whith which I was absolutly sure (too much as it seems) there would be no mess
caused by third party libraries holding old classes that would override the
right ones on the server environment while working like a charm on our
development and test platforms.

As those times are apparently gone and ramdomness seems a more enjoyable
behaviour to a lot of person here, we will have to do the only reasonable thing
for the overriden classes that are used in those legacy webapps (as we can't
possibly adapt the context.xml on our virtual environments each time we make a
new release nor copying those jars to the bootstrap folder and coding a custom
ClassLoader is clearly not an option here) : 

We will have to extract every overriding class from the concerned jars into the
classes path by adding those to the resources folder of each component in order
to be sure that they will be picked first in our tests and on the server side.
Every module, for every war artefact, for every project. Yuck ! 🤢

So thank you for this dreadfull decision that took us so much time to figure
and that will take some more to adapt to. And don't try invoking java jigsaw
(that every sane minded people disable by default) or paralell laoding to
justify that, it is just non sense.

Regards.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] branch 8.5.x updated: Add additional tests with pooling

2021-12-03 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm 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 f660c28  Add additional tests with pooling
f660c28 is described below

commit f660c28e8b3a76243e09286bddaecff62bc6b2e3
Author: remm 
AuthorDate: Fri Dec 3 09:44:58 2021 +0100

Add additional tests with pooling
---
 .../catalina/realm/TestJNDIRealmIntegration.java   | 51 +-
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java 
b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
index 9e7595f..cdbc252 100644
--- a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
+++ b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
@@ -61,33 +61,38 @@ public class TestJNDIRealmIntegration {
 for (String userRoleAttribute : new String[] { "cn", null }) {
 for (String roleSearch : new String[] { ROLE_SEARCH_A, 
ROLE_SEARCH_B, ROLE_SEARCH_C }) {
 if (userRoleAttribute != null) {
-addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets);
-addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 1);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 4);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 1);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 4);
 }
 }
 parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
 "{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
-userRoleAttribute });
+userRoleAttribute, Integer.valueOf(1) });
+parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
+"{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
+userRoleAttribute, Integer.valueOf(4) });
 }
 return parameterSets;
 }
 
 
 private static void addUsers(String userPattern, String userSearch, String 
userBase, String roleSearch,
-String roleBase, String userRoleAttribute, List 
parameterSets) {
+String roleBase, String userRoleAttribute, List 
parameterSets, int poolSize) {
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"test", "test", new String[] {"TestGroup"}, userRoleAttribute 
});
+"test", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t;", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t;", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t*", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t*", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute });
+"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute, Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"norole", "test", new String[0], userRoleAttribute });
+"norole", "test", new String[0], userRoleAttribute, 
Integer.valueOf(poolSize) });
 // Bug 65373
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute });
+"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute, Integer.valueOf(poolSize) });
 }
 
 
@@ -109,6 +114,8 @@ public class TestJNDIRealmIntegration {
 public String[] groups;
 @Parameter(8)
 public String realmConfigUserRoleAttribute;
+@Parameter(9)
+public int poolSize;
 
 @Test
 public void testAuthenication() throws Exception {
@@ -124,20 +131,24 @@ public class TestJNDIRealmIntegratio

[tomcat] branch 9.0.x updated: Add additional tests with pooling

2021-12-03 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 2149631  Add additional tests with pooling
2149631 is described below

commit 21496315e5724510dc5222ea02823660fb857a3b
Author: remm 
AuthorDate: Fri Dec 3 09:44:58 2021 +0100

Add additional tests with pooling
---
 .../catalina/realm/TestJNDIRealmIntegration.java   | 51 +-
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java 
b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
index 9e7595f..cdbc252 100644
--- a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
+++ b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
@@ -61,33 +61,38 @@ public class TestJNDIRealmIntegration {
 for (String userRoleAttribute : new String[] { "cn", null }) {
 for (String roleSearch : new String[] { ROLE_SEARCH_A, 
ROLE_SEARCH_B, ROLE_SEARCH_C }) {
 if (userRoleAttribute != null) {
-addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets);
-addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 1);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 4);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 1);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 4);
 }
 }
 parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
 "{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
-userRoleAttribute });
+userRoleAttribute, Integer.valueOf(1) });
+parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
+"{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
+userRoleAttribute, Integer.valueOf(4) });
 }
 return parameterSets;
 }
 
 
 private static void addUsers(String userPattern, String userSearch, String 
userBase, String roleSearch,
-String roleBase, String userRoleAttribute, List 
parameterSets) {
+String roleBase, String userRoleAttribute, List 
parameterSets, int poolSize) {
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"test", "test", new String[] {"TestGroup"}, userRoleAttribute 
});
+"test", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t;", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t;", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t*", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t*", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute });
+"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute, Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"norole", "test", new String[0], userRoleAttribute });
+"norole", "test", new String[0], userRoleAttribute, 
Integer.valueOf(poolSize) });
 // Bug 65373
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute });
+"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute, Integer.valueOf(poolSize) });
 }
 
 
@@ -109,6 +114,8 @@ public class TestJNDIRealmIntegration {
 public String[] groups;
 @Parameter(8)
 public String realmConfigUserRoleAttribute;
+@Parameter(9)
+public int poolSize;
 
 @Test
 public void testAuthenication() throws Exception {
@@ -124,20 +131,24 @@ public class TestJNDIRealmIntegratio

[tomcat] branch 10.0.x updated: Add additional tests with pooling

2021-12-03 Thread remm
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/10.0.x by this push:
 new 03c7985  Add additional tests with pooling
03c7985 is described below

commit 03c7985c5b669aba8e9c9690d7efd39330629b5b
Author: remm 
AuthorDate: Fri Dec 3 09:44:58 2021 +0100

Add additional tests with pooling
---
 .../catalina/realm/TestJNDIRealmIntegration.java   | 51 +-
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java 
b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
index 9e7595f..cdbc252 100644
--- a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
+++ b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
@@ -61,33 +61,38 @@ public class TestJNDIRealmIntegration {
 for (String userRoleAttribute : new String[] { "cn", null }) {
 for (String roleSearch : new String[] { ROLE_SEARCH_A, 
ROLE_SEARCH_B, ROLE_SEARCH_C }) {
 if (userRoleAttribute != null) {
-addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets);
-addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 1);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 4);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 1);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 4);
 }
 }
 parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
 "{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
-userRoleAttribute });
+userRoleAttribute, Integer.valueOf(1) });
+parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
+"{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
+userRoleAttribute, Integer.valueOf(4) });
 }
 return parameterSets;
 }
 
 
 private static void addUsers(String userPattern, String userSearch, String 
userBase, String roleSearch,
-String roleBase, String userRoleAttribute, List 
parameterSets) {
+String roleBase, String userRoleAttribute, List 
parameterSets, int poolSize) {
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"test", "test", new String[] {"TestGroup"}, userRoleAttribute 
});
+"test", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t;", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t;", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t*", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t*", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute });
+"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute, Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"norole", "test", new String[0], userRoleAttribute });
+"norole", "test", new String[0], userRoleAttribute, 
Integer.valueOf(poolSize) });
 // Bug 65373
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute });
+"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute, Integer.valueOf(poolSize) });
 }
 
 
@@ -109,6 +114,8 @@ public class TestJNDIRealmIntegration {
 public String[] groups;
 @Parameter(8)
 public String realmConfigUserRoleAttribute;
+@Parameter(9)
+public int poolSize;
 
 @Test
 public void testAuthenication() throws Exception {
@@ -124,20 +131,24 @@ public class TestJNDIRealmIntegrat

Re: [VOTE] Release Apache Tomcat 10.0.14

2021-12-03 Thread Rémy Maucherat
On Thu, Dec 2, 2021 at 11:22 PM Mark Thomas  wrote:
>
> The proposed Apache Tomcat 10.0.14 release is now available for
> voting.
>
> Apache Tomcat 10.x implements Jakarta EE 9 and, as such, the primary
> package for all the specification APIs has changed from javax.* to jakarta.*
>
> Applications that run on Tomcat 9 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
>
> The notable changes compared to 10.0.13 are:
>
> - Provide protection against a known OS bug that causes the acceptor to
>report an incoming connection more than once.
>
> - Implement a workaround for a JVM bug that can trigger a file
>descriptor leak when using multi-part upload and the application does
>not explicitly close an input stream for an uploaded file that was
>cached on disk.
>
> - Fix exceptions when the security manager is enabled and the first
>request received after starting is an HTTP request to a TLS enabled
>NIO2 connector.
>
> Along with lots of other bug fixes and improvements.
>
> For full details, see the changelog:
> https://nightlies.apache.org/tomcat/tomcat-10.0.x/docs/changelog.html
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-10/v10.0.14/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1345
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.0.14
> 3bb5b5fcf02e25ae627e480937e755e0a99c82d7
>
> The proposed 10.0.14 release is:
> [ ] Broken - do not release
> [X] Stable - go ahead and release as 10.0.14 (stable)

Rémy

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



[VOTE] Release Apache Tomcat 9.0.56

2021-12-03 Thread Rémy Maucherat
The proposed Apache Tomcat 9.0.56 release is now available for voting.

The notable changes compared to 9.0.56 are:

- Provide protection against a known OS bug that causes the acceptor to
   report an incoming connection more than once.

- Implement a workaround for a JVM bug that can trigger a file
   descriptor leak when using multi-part upload and the application does
   not explicitly close an input stream for an uploaded file that was
   cached on disk.

- Fix exceptions when the security manager is enabled and the first
   request received after starting is an HTTP request to a TLS enabled
   NIO2 connector.

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.56/
The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1344
The tag is:
https://github.com/apache/tomcat/tree/9.0.56
af2a7a4fb2db07390362af12d0020d550abd8785

The proposed 9.0.56 release is:
[ ] Broken - do not release
[ ] Stable - go ahead and release as 9.0.56 (stable)

Rémy

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



[tomcat] branch main updated: Add additional tests with pooling

2021-12-03 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm 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 51760c6  Add additional tests with pooling
51760c6 is described below

commit 51760c6608d4c41ef39e8a30dfe89759f8b65679
Author: remm 
AuthorDate: Fri Dec 3 09:44:58 2021 +0100

Add additional tests with pooling
---
 .../catalina/realm/TestJNDIRealmIntegration.java   | 51 +-
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java 
b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
index 9e7595f..cdbc252 100644
--- a/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
+++ b/test/org/apache/catalina/realm/TestJNDIRealmIntegration.java
@@ -61,33 +61,38 @@ public class TestJNDIRealmIntegration {
 for (String userRoleAttribute : new String[] { "cn", null }) {
 for (String roleSearch : new String[] { ROLE_SEARCH_A, 
ROLE_SEARCH_B, ROLE_SEARCH_C }) {
 if (userRoleAttribute != null) {
-addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets);
-addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 1);
+addUsers(USER_PATTERN, null, null, roleSearch, ROLE_BASE, 
userRoleAttribute, parameterSets, 4);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 1);
+addUsers(null, USER_SEARCH, USER_BASE, roleSearch, 
ROLE_BASE, userRoleAttribute, parameterSets, 4);
 }
 }
 parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
 "{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
-userRoleAttribute });
+userRoleAttribute, Integer.valueOf(1) });
+parameterSets.add(new Object[] { 
"cn={0},ou=s\\;ub,ou=people,dc=example,dc=com", null, null, ROLE_SEARCH_A,
+"{3},ou=people,dc=example,dc=com", "testsub", "test", new 
String[] { "TestGroup4" },
+userRoleAttribute, Integer.valueOf(4) });
 }
 return parameterSets;
 }
 
 
 private static void addUsers(String userPattern, String userSearch, String 
userBase, String roleSearch,
-String roleBase, String userRoleAttribute, List 
parameterSets) {
+String roleBase, String userRoleAttribute, List 
parameterSets, int poolSize) {
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"test", "test", new String[] {"TestGroup"}, userRoleAttribute 
});
+"test", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t;", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t;", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t*", "test", new String[] {"TestGroup"}, userRoleAttribute });
+"t*", "test", new String[] {"TestGroup"}, userRoleAttribute, 
Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute });
+"t=", "test", new String[] {"TestGroup*3"}, 
userRoleAttribute, Integer.valueOf(poolSize) });
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"norole", "test", new String[0], userRoleAttribute });
+"norole", "test", new String[0], userRoleAttribute, 
Integer.valueOf(poolSize) });
 // Bug 65373
 parameterSets.add(new Object[] { userPattern, userSearch, userBase, 
roleSearch, roleBase,
-"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute });
+"<>+=\"#;,rrr", "<>+=\"#;,rrr", new String[0], 
userRoleAttribute, Integer.valueOf(poolSize) });
 }
 
 
@@ -109,6 +114,8 @@ public class TestJNDIRealmIntegration {
 public String[] groups;
 @Parameter(8)
 public String realmConfigUserRoleAttribute;
+@Parameter(9)
+public int poolSize;
 
 @Test
 public void testAuthenication() throws Exception {
@@ -124,20 +131,24 @@ public class TestJNDIRealmIntegration