[Bug 66295] New: Multiple relative <@ include to subfolder not working anymore

2022-10-05 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=66295

Bug ID: 66295
   Summary: Multiple relative <@ include to subfolder not working
anymore
   Product: Tomcat 9
   Version: 9.0.67
  Hardware: All
OS: All
Status: NEW
  Severity: major
  Priority: P2
 Component: Jasper
  Assignee: dev@tomcat.apache.org
  Reporter: andreas.goebel.marc...@gmail.com
  Target Milestone: -

If you have a jsp like this:

<%@ include file="include/content1.jsp" %>
<%@ include file="include/content2.jsp" %>

content2.jsp not found and you get this exception:

Caused by: org.apache.jasper.JasperException:
/WEB-INF/views/manager/content/content.jsp (Line: [2], Column: [5]) File
[include/content2.jsp] not found

both jsp exists and if you link it absolute it works:

<%@ include file="/WEB-INF/views/manager/content/include/content1.jsp" %>
<%@ include file="/WEB-INF/views/manager/content/include/content2.jsp" %>

it seems the second include check relative from the first one and search the
jsp at include/include/content2.jsp and there is of course no jsp.

-- 
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 66277] The taglib file cannot be found with version 9.0.67

2022-10-05 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=66277

Mark Thomas  changed:

   What|Removed |Added

 CC||andreas.goebel.marcapo@gmai
   ||l.com

--- Comment #4 from Mark Thomas  ---
*** Bug 66295 has been marked as a duplicate of this bug. ***

-- 
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 66295] Multiple relative <@ include to subfolder not working anymore

2022-10-05 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=66295

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Mark Thomas  ---


*** This bug has been marked as a duplicate of bug 66277 ***

-- 
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.1.1

2022-10-05 Thread Mark Thomas

On 03/10/2022 14:25, Mark Thomas wrote:


The proposed 10.1.1 release is:
[ ] Broken - do not release
[X] Stable - go ahead and release as 10.1.1


Unit tests pass on Linux, Windows and MacOS.

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.0.27

2022-10-05 Thread Mark Thomas

On 03/10/2022 17:13, Mark Thomas wrote:


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


Unit tests pass on Linux, Windows and MacOS.

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 9.0.68

2022-10-05 Thread Mark Thomas

On 03/10/2022 21:05, Mark Thomas wrote:


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


Unit tests pass on Linux, Windows and MacOS.

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 8.5.83

2022-10-05 Thread Mark Thomas

On 03/10/2022 22:53, Mark Thomas wrote:


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



-
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.1

2022-10-05 Thread Rémy Maucherat
On Mon, Oct 3, 2022, 08:26 Mark Thomas  wrote:

> The proposed Apache Tomcat 10.1.1 release is now available for
> voting.
>
> 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.
>
> The notable changes compared to 10.1.0 are:
>
> - Fix bug 66277, a refactoring regression that broke JSP includes
>amongst other functionality
>
> - Fix unexpected timeouts that may appear as client disconnections when
>using HTTP/2 and NIO2
>
> - Update to Eclipse JDT compiler 4.23
>
> For full details, see the change log:
> https://nightlies.apache.org/tomcat/tomcat-10.1.x/docs/changelog.html
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-10/v10.1.1/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1399
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.1
> 934df02dc68e72b95a38f372017f1b89b0d13a76
>
>
> The proposed 10.1.1 release is:
> [ ] Broken - do not release
> [X] Stable - go ahead and release as 10.1.1
>

Rémy


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


[tomcat] branch 10.0.x updated: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt 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 370b73e8a7 Refactor. Using List interface so use ArrayList rather than 
LinkedList
370b73e8a7 is described below

commit 370b73e8a715ec6ef5bddad53bba0edd658d1f80
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:47:56 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/tribes/transport/PooledSender.java | 5 +++--
 java/org/apache/catalina/tribes/transport/RxTaskPool.java   | 6 +++---
 java/org/apache/catalina/valves/RemoteCIDRValve.java| 3 +--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java 
b/java/org/apache/catalina/tribes/transport/PooledSender.java
index bbb4370e26..59afa9c6d3 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -17,6 +17,7 @@
 package org.apache.catalina.tribes.transport;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.catalina.tribes.Member;
@@ -122,8 +123,8 @@ public abstract class PooledSender extends AbstractSender 
implements MultiPointS
 public SenderQueue(PooledSender parent, int limit) {
 this.limit = limit;
 this.parent = parent;
-notinuse = new java.util.LinkedList<>();
-inuse = new java.util.LinkedList<>();
+notinuse = new ArrayList<>();
+inuse = new ArrayList<>();
 }
 
 /**
diff --git a/java/org/apache/catalina/tribes/transport/RxTaskPool.java 
b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
index 24b4bcfc71..c57c3b54ab 100644
--- a/java/org/apache/catalina/tribes/transport/RxTaskPool.java
+++ b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
@@ -15,8 +15,8 @@
  * limitations under the License.
  */
 package org.apache.catalina.tribes.transport;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -27,8 +27,8 @@ import java.util.List;
  */
 public class RxTaskPool {
 
-final List idle = new LinkedList<>();
-final List used = new LinkedList<>();
+final List idle = new ArrayList<>();
+final List used = new ArrayList<>();
 
 final Object mutex = new Object();
 boolean running = true;
diff --git a/java/org/apache/catalina/valves/RemoteCIDRValve.java 
b/java/org/apache/catalina/valves/RemoteCIDRValve.java
index 8cae2de48d..ea6b1a2a8e 100644
--- a/java/org/apache/catalina/valves/RemoteCIDRValve.java
+++ b/java/org/apache/catalina/valves/RemoteCIDRValve.java
@@ -21,7 +21,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import jakarta.servlet.ServletException;
@@ -236,7 +235,7 @@ public final class RemoteCIDRValve extends 
RequestFilterValve {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {


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



[tomcat] branch main updated: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 385d0504e4 Refactor. Using List interface so use ArrayList rather than 
LinkedList
385d0504e4 is described below

commit 385d0504e414def3de68401bc6bc604835079e98
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:47:56 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/tribes/transport/PooledSender.java | 5 +++--
 java/org/apache/catalina/tribes/transport/RxTaskPool.java   | 6 +++---
 java/org/apache/catalina/valves/RemoteCIDRValve.java| 3 +--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java 
b/java/org/apache/catalina/tribes/transport/PooledSender.java
index bbb4370e26..59afa9c6d3 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -17,6 +17,7 @@
 package org.apache.catalina.tribes.transport;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.catalina.tribes.Member;
@@ -122,8 +123,8 @@ public abstract class PooledSender extends AbstractSender 
implements MultiPointS
 public SenderQueue(PooledSender parent, int limit) {
 this.limit = limit;
 this.parent = parent;
-notinuse = new java.util.LinkedList<>();
-inuse = new java.util.LinkedList<>();
+notinuse = new ArrayList<>();
+inuse = new ArrayList<>();
 }
 
 /**
diff --git a/java/org/apache/catalina/tribes/transport/RxTaskPool.java 
b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
index 24b4bcfc71..c57c3b54ab 100644
--- a/java/org/apache/catalina/tribes/transport/RxTaskPool.java
+++ b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
@@ -15,8 +15,8 @@
  * limitations under the License.
  */
 package org.apache.catalina.tribes.transport;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -27,8 +27,8 @@ import java.util.List;
  */
 public class RxTaskPool {
 
-final List idle = new LinkedList<>();
-final List used = new LinkedList<>();
+final List idle = new ArrayList<>();
+final List used = new ArrayList<>();
 
 final Object mutex = new Object();
 boolean running = true;
diff --git a/java/org/apache/catalina/valves/RemoteCIDRValve.java 
b/java/org/apache/catalina/valves/RemoteCIDRValve.java
index 8cae2de48d..ea6b1a2a8e 100644
--- a/java/org/apache/catalina/valves/RemoteCIDRValve.java
+++ b/java/org/apache/catalina/valves/RemoteCIDRValve.java
@@ -21,7 +21,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import jakarta.servlet.ServletException;
@@ -236,7 +235,7 @@ public final class RemoteCIDRValve extends 
RequestFilterValve {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {


-
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: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 356baae45c Refactor. Using List interface so use ArrayList rather than 
LinkedList
356baae45c is described below

commit 356baae45c60dc9bcd3809b9cdd7e14761a8c552
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:47:56 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/tribes/transport/PooledSender.java | 5 +++--
 java/org/apache/catalina/tribes/transport/RxTaskPool.java   | 6 +++---
 java/org/apache/catalina/valves/RemoteCIDRValve.java| 3 +--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java 
b/java/org/apache/catalina/tribes/transport/PooledSender.java
index bbb4370e26..59afa9c6d3 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -17,6 +17,7 @@
 package org.apache.catalina.tribes.transport;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.catalina.tribes.Member;
@@ -122,8 +123,8 @@ public abstract class PooledSender extends AbstractSender 
implements MultiPointS
 public SenderQueue(PooledSender parent, int limit) {
 this.limit = limit;
 this.parent = parent;
-notinuse = new java.util.LinkedList<>();
-inuse = new java.util.LinkedList<>();
+notinuse = new ArrayList<>();
+inuse = new ArrayList<>();
 }
 
 /**
diff --git a/java/org/apache/catalina/tribes/transport/RxTaskPool.java 
b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
index 24b4bcfc71..c57c3b54ab 100644
--- a/java/org/apache/catalina/tribes/transport/RxTaskPool.java
+++ b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
@@ -15,8 +15,8 @@
  * limitations under the License.
  */
 package org.apache.catalina.tribes.transport;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -27,8 +27,8 @@ import java.util.List;
  */
 public class RxTaskPool {
 
-final List idle = new LinkedList<>();
-final List used = new LinkedList<>();
+final List idle = new ArrayList<>();
+final List used = new ArrayList<>();
 
 final Object mutex = new Object();
 boolean running = true;
diff --git a/java/org/apache/catalina/valves/RemoteCIDRValve.java 
b/java/org/apache/catalina/valves/RemoteCIDRValve.java
index 8d5575785d..18ea31f192 100644
--- a/java/org/apache/catalina/valves/RemoteCIDRValve.java
+++ b/java/org/apache/catalina/valves/RemoteCIDRValve.java
@@ -21,7 +21,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.servlet.ServletException;
@@ -236,7 +235,7 @@ public final class RemoteCIDRValve extends 
RequestFilterValve {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {


-
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: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 d1af968d59 Refactor. Using List interface so use ArrayList rather than 
LinkedList
d1af968d59 is described below

commit d1af968d59ac2cf0b1de813a64dcac038ff26f58
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:47:56 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/tribes/transport/PooledSender.java | 5 +++--
 java/org/apache/catalina/tribes/transport/RxTaskPool.java   | 6 +++---
 java/org/apache/catalina/valves/RemoteCIDRValve.java| 3 +--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java 
b/java/org/apache/catalina/tribes/transport/PooledSender.java
index 060a33e0a3..a0a40a6bf3 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -17,6 +17,7 @@
 package org.apache.catalina.tribes.transport;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.catalina.tribes.Member;
@@ -122,8 +123,8 @@ public abstract class PooledSender extends AbstractSender 
implements MultiPointS
 public SenderQueue(PooledSender parent, int limit) {
 this.limit = limit;
 this.parent = parent;
-notinuse = new java.util.LinkedList<>();
-inuse = new java.util.LinkedList<>();
+notinuse = new ArrayList<>();
+inuse = new ArrayList<>();
 }
 
 /**
diff --git a/java/org/apache/catalina/tribes/transport/RxTaskPool.java 
b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
index 17f94d50e7..2fe7fd447b 100644
--- a/java/org/apache/catalina/tribes/transport/RxTaskPool.java
+++ b/java/org/apache/catalina/tribes/transport/RxTaskPool.java
@@ -15,8 +15,8 @@
  * limitations under the License.
  */
 package org.apache.catalina.tribes.transport;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -27,8 +27,8 @@ import java.util.List;
  */
 public class RxTaskPool {
 
-final List idle = new LinkedList<>();
-final List used = new LinkedList<>();
+final List idle = new ArrayList<>();
+final List used = new ArrayList<>();
 
 final Object mutex = new Object();
 boolean running = true;
diff --git a/java/org/apache/catalina/valves/RemoteCIDRValve.java 
b/java/org/apache/catalina/valves/RemoteCIDRValve.java
index da207ba0b1..e93597dc1e 100644
--- a/java/org/apache/catalina/valves/RemoteCIDRValve.java
+++ b/java/org/apache/catalina/valves/RemoteCIDRValve.java
@@ -21,7 +21,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.servlet.ServletException;
@@ -236,7 +235,7 @@ public final class RemoteCIDRValve extends 
RequestFilterValve {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {


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



[tomcat] branch main updated: Refactor. Use Deque and ArrayDeque rather than LinkedList

2022-10-05 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 bb95898255 Refactor. Use Deque and ArrayDeque rather than LinkedList
bb95898255 is described below

commit bb9589825578820abc08c65a1b1dff5a72c815b9
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:50:37 2022 +0100

Refactor. Use Deque and ArrayDeque rather than LinkedList
---
 java/org/apache/catalina/valves/RemoteIpValve.java  |  6 +++---
 java/org/apache/jasper/compiler/PageInfo.java   | 13 +++--
 java/org/apache/tomcat/util/scan/StandardJarScanner.java|  4 ++--
 .../WEB-INF/classes/websocket/drawboard/Client.java |  6 +++---
 4 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java 
b/java/org/apache/catalina/valves/RemoteIpValve.java
index 7320acea3e..4fdf62ef0c 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -19,9 +19,9 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Enumeration;
-import java.util.LinkedList;
 import java.util.regex.Pattern;
 
 import jakarta.servlet.ServletException;
@@ -598,7 +598,7 @@ public class RemoteIpValve extends ValveBase {
 if (isInternal || (trustedProxies != null &&
 trustedProxies.matcher(originalRemoteAddr).matches())) {
 String remoteIp = null;
-Deque proxiesHeaderValue = new LinkedList<>();
+Deque proxiesHeaderValue = new ArrayDeque<>();
 StringBuilder concatRemoteIpHeaderValue = new StringBuilder();
 
 for (Enumeration e = request.getHeaders(remoteIpHeader); 
e.hasMoreElements();) {
@@ -629,7 +629,7 @@ public class RemoteIpValve extends ValveBase {
 }
 }
 // continue to loop on remoteIpHeaderValue to build the new value 
of the remoteIpHeader
-LinkedList newRemoteIpHeaderValue = new LinkedList<>();
+Deque newRemoteIpHeaderValue = new ArrayDeque<>();
 for (; idx >= 0; idx--) {
 String currentRemoteIp = remoteIpHeaderValue[idx];
 newRemoteIpHeaderValue.addFirst(currentRemoteIp);
diff --git a/java/org/apache/jasper/compiler/PageInfo.java 
b/java/org/apache/jasper/compiler/PageInfo.java
index f4d7383a23..94b3a1db5f 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -16,11 +16,12 @@
  */
 package org.apache.jasper.compiler;
 
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -47,7 +48,7 @@ class PageInfo {
 private final Set varInfoNames;
 private final HashMap taglibsMap;
 private final HashMap jspPrefixMapper;
-private final HashMap> xmlPrefixMapper;
+private final HashMap> xmlPrefixMapper;
 private final HashMap nonCustomTagPrefixMap;
 private final String jspFile;
 private static final String defaultLanguage = "java";
@@ -337,9 +338,9 @@ class PageInfo {
  * @param uri The URI to be pushed onto the stack
  */
 public void pushPrefixMapping(String prefix, String uri) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null) {
-stack = new LinkedList<>();
+stack = new ArrayDeque<>();
 xmlPrefixMapper.put(prefix, stack);
 }
 stack.addFirst(uri);
@@ -352,7 +353,7 @@ class PageInfo {
  * @param prefix The prefix whose stack of URIs is to be popped
  */
 public void popPrefixMapping(String prefix) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 stack.removeFirst();
 }
 
@@ -367,7 +368,7 @@ class PageInfo {
 
 String uri = null;
 
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null || stack.size() == 0) {
 uri = jspPrefixMapper.get(prefix);
 } else {
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index a71e8c3e16..99f8cf8484 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -23,11 +23,11 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.net.URLClassLoa

[tomcat] branch 10.0.x updated: Refactor. Use Deque and ArrayDeque rather than LinkedList

2022-10-05 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt 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 a4854f470f Refactor. Use Deque and ArrayDeque rather than LinkedList
a4854f470f is described below

commit a4854f470fe577524415fdec65ce2a75b39713c3
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:50:37 2022 +0100

Refactor. Use Deque and ArrayDeque rather than LinkedList
---
 java/org/apache/catalina/valves/RemoteIpValve.java  |  6 +++---
 java/org/apache/jasper/compiler/PageInfo.java   | 13 +++--
 java/org/apache/tomcat/util/scan/StandardJarScanner.java|  4 ++--
 .../WEB-INF/classes/websocket/drawboard/Client.java |  6 +++---
 4 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java 
b/java/org/apache/catalina/valves/RemoteIpValve.java
index ea43c6ba71..e7118cb59b 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -19,10 +19,10 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Enumeration;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -626,7 +626,7 @@ public class RemoteIpValve extends ValveBase {
 if (isInternal || (trustedProxies != null &&
 trustedProxies.matcher(originalRemoteAddr).matches())) {
 String remoteIp = null;
-Deque proxiesHeaderValue = new LinkedList<>();
+Deque proxiesHeaderValue = new ArrayDeque<>();
 StringBuilder concatRemoteIpHeaderValue = new StringBuilder();
 
 for (Enumeration e = request.getHeaders(remoteIpHeader); 
e.hasMoreElements();) {
@@ -657,7 +657,7 @@ public class RemoteIpValve extends ValveBase {
 }
 }
 // continue to loop on remoteIpHeaderValue to build the new value 
of the remoteIpHeader
-LinkedList newRemoteIpHeaderValue = new LinkedList<>();
+Deque newRemoteIpHeaderValue = new ArrayDeque<>();
 for (; idx >= 0; idx--) {
 String currentRemoteIp = remoteIpHeaderValue[idx];
 newRemoteIpHeaderValue.addFirst(currentRemoteIp);
diff --git a/java/org/apache/jasper/compiler/PageInfo.java 
b/java/org/apache/jasper/compiler/PageInfo.java
index b84ef00c9d..68c3566c06 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -16,11 +16,12 @@
  */
 package org.apache.jasper.compiler;
 
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -47,7 +48,7 @@ class PageInfo {
 private final Set varInfoNames;
 private final HashMap taglibsMap;
 private final HashMap jspPrefixMapper;
-private final HashMap> xmlPrefixMapper;
+private final HashMap> xmlPrefixMapper;
 private final HashMap nonCustomTagPrefixMap;
 private final String jspFile;
 private static final String defaultLanguage = "java";
@@ -333,9 +334,9 @@ class PageInfo {
  * @param uri The URI to be pushed onto the stack
  */
 public void pushPrefixMapping(String prefix, String uri) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null) {
-stack = new LinkedList<>();
+stack = new ArrayDeque<>();
 xmlPrefixMapper.put(prefix, stack);
 }
 stack.addFirst(uri);
@@ -348,7 +349,7 @@ class PageInfo {
  * @param prefix The prefix whose stack of URIs is to be popped
  */
 public void popPrefixMapping(String prefix) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 stack.removeFirst();
 }
 
@@ -363,7 +364,7 @@ class PageInfo {
 
 String uri = null;
 
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null || stack.size() == 0) {
 uri = jspPrefixMapper.get(prefix);
 } else {
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index 9a2fb79a62..54b9314f33 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -22,11 +22,11 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java

[tomcat] branch 9.0.x updated: Refactor. Use Deque and ArrayDeque rather than LinkedList

2022-10-05 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 21f04f4b79 Refactor. Use Deque and ArrayDeque rather than LinkedList
21f04f4b79 is described below

commit 21f04f4b7950799bc70db023b9d723a7cf071758
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:50:37 2022 +0100

Refactor. Use Deque and ArrayDeque rather than LinkedList
---
 java/org/apache/catalina/valves/RemoteIpValve.java  |  6 +++---
 java/org/apache/jasper/compiler/PageInfo.java   | 13 +++--
 java/org/apache/tomcat/util/scan/StandardJarScanner.java|  4 ++--
 .../WEB-INF/classes/websocket/drawboard/Client.java |  6 +++---
 4 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java 
b/java/org/apache/catalina/valves/RemoteIpValve.java
index 45b99695ec..3365bcc20c 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -19,10 +19,10 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Enumeration;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -626,7 +626,7 @@ public class RemoteIpValve extends ValveBase {
 if (isInternal || (trustedProxies != null &&
 trustedProxies.matcher(originalRemoteAddr).matches())) {
 String remoteIp = null;
-Deque proxiesHeaderValue = new LinkedList<>();
+Deque proxiesHeaderValue = new ArrayDeque<>();
 StringBuilder concatRemoteIpHeaderValue = new StringBuilder();
 
 for (Enumeration e = request.getHeaders(remoteIpHeader); 
e.hasMoreElements();) {
@@ -657,7 +657,7 @@ public class RemoteIpValve extends ValveBase {
 }
 }
 // continue to loop on remoteIpHeaderValue to build the new value 
of the remoteIpHeader
-LinkedList newRemoteIpHeaderValue = new LinkedList<>();
+Deque newRemoteIpHeaderValue = new ArrayDeque<>();
 for (; idx >= 0; idx--) {
 String currentRemoteIp = remoteIpHeaderValue[idx];
 newRemoteIpHeaderValue.addFirst(currentRemoteIp);
diff --git a/java/org/apache/jasper/compiler/PageInfo.java 
b/java/org/apache/jasper/compiler/PageInfo.java
index 88dc6b7efe..cd1b2a5b8f 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -16,11 +16,12 @@
  */
 package org.apache.jasper.compiler;
 
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -46,7 +47,7 @@ class PageInfo {
 private final Set varInfoNames;
 private final HashMap taglibsMap;
 private final HashMap jspPrefixMapper;
-private final HashMap> xmlPrefixMapper;
+private final HashMap> xmlPrefixMapper;
 private final HashMap nonCustomTagPrefixMap;
 private final String jspFile;
 private static final String defaultLanguage = "java";
@@ -331,9 +332,9 @@ class PageInfo {
  * @param uri The URI to be pushed onto the stack
  */
 public void pushPrefixMapping(String prefix, String uri) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null) {
-stack = new LinkedList<>();
+stack = new ArrayDeque<>();
 xmlPrefixMapper.put(prefix, stack);
 }
 stack.addFirst(uri);
@@ -346,7 +347,7 @@ class PageInfo {
  * @param prefix The prefix whose stack of URIs is to be popped
  */
 public void popPrefixMapping(String prefix) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 stack.removeFirst();
 }
 
@@ -361,7 +362,7 @@ class PageInfo {
 
 String uri = null;
 
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null || stack.size() == 0) {
 uri = jspPrefixMapper.get(prefix);
 } else {
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index c7e8f2c436..d09985ea94 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -22,11 +22,11 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.n

[tomcat] branch 8.5.x updated: Refactor. Use Deque and ArrayDeque rather than LinkedList

2022-10-05 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 ec4204ef93 Refactor. Use Deque and ArrayDeque rather than LinkedList
ec4204ef93 is described below

commit ec4204ef934e5a96203cbab1612b6dd4c49ac2a4
Author: Mark Thomas 
AuthorDate: Wed Oct 5 17:50:37 2022 +0100

Refactor. Use Deque and ArrayDeque rather than LinkedList
---
 java/org/apache/catalina/valves/RemoteIpValve.java  |  6 +++---
 java/org/apache/jasper/compiler/PageInfo.java   | 13 +++--
 java/org/apache/tomcat/util/scan/StandardJarScanner.java|  4 ++--
 .../WEB-INF/classes/websocket/drawboard/Client.java |  6 +++---
 4 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java 
b/java/org/apache/catalina/valves/RemoteIpValve.java
index 45b99695ec..3365bcc20c 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -19,10 +19,10 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Enumeration;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -626,7 +626,7 @@ public class RemoteIpValve extends ValveBase {
 if (isInternal || (trustedProxies != null &&
 trustedProxies.matcher(originalRemoteAddr).matches())) {
 String remoteIp = null;
-Deque proxiesHeaderValue = new LinkedList<>();
+Deque proxiesHeaderValue = new ArrayDeque<>();
 StringBuilder concatRemoteIpHeaderValue = new StringBuilder();
 
 for (Enumeration e = request.getHeaders(remoteIpHeader); 
e.hasMoreElements();) {
@@ -657,7 +657,7 @@ public class RemoteIpValve extends ValveBase {
 }
 }
 // continue to loop on remoteIpHeaderValue to build the new value 
of the remoteIpHeader
-LinkedList newRemoteIpHeaderValue = new LinkedList<>();
+Deque newRemoteIpHeaderValue = new ArrayDeque<>();
 for (; idx >= 0; idx--) {
 String currentRemoteIp = remoteIpHeaderValue[idx];
 newRemoteIpHeaderValue.addFirst(currentRemoteIp);
diff --git a/java/org/apache/jasper/compiler/PageInfo.java 
b/java/org/apache/jasper/compiler/PageInfo.java
index 88dc6b7efe..cd1b2a5b8f 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -16,11 +16,12 @@
  */
 package org.apache.jasper.compiler;
 
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -46,7 +47,7 @@ class PageInfo {
 private final Set varInfoNames;
 private final HashMap taglibsMap;
 private final HashMap jspPrefixMapper;
-private final HashMap> xmlPrefixMapper;
+private final HashMap> xmlPrefixMapper;
 private final HashMap nonCustomTagPrefixMap;
 private final String jspFile;
 private static final String defaultLanguage = "java";
@@ -331,9 +332,9 @@ class PageInfo {
  * @param uri The URI to be pushed onto the stack
  */
 public void pushPrefixMapping(String prefix, String uri) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null) {
-stack = new LinkedList<>();
+stack = new ArrayDeque<>();
 xmlPrefixMapper.put(prefix, stack);
 }
 stack.addFirst(uri);
@@ -346,7 +347,7 @@ class PageInfo {
  * @param prefix The prefix whose stack of URIs is to be popped
  */
 public void popPrefixMapping(String prefix) {
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 stack.removeFirst();
 }
 
@@ -361,7 +362,7 @@ class PageInfo {
 
 String uri = null;
 
-LinkedList stack = xmlPrefixMapper.get(prefix);
+Deque stack = xmlPrefixMapper.get(prefix);
 if (stack == null || stack.size() == 0) {
 uri = jspPrefixMapper.get(prefix);
 } else {
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index 1de21f1919..31766bfced 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -22,11 +22,11 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.n

[tomcat] branch main updated: Additional comment to explain choice of LinkedList

2022-10-05 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 a83fd9e607 Additional comment to explain choice of LinkedList
a83fd9e607 is described below

commit a83fd9e607c22cb0e3b27f2cebd9e9fc385eb5a2
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:01:49 2022 +0100

Additional comment to explain choice of LinkedList
---
 java/org/apache/catalina/session/ManagerBase.java | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/session/ManagerBase.java 
b/java/org/apache/catalina/session/ManagerBase.java
index d142701d43..c78b1ae4c2 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -120,11 +120,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
 
 protected static final int TIMING_STATS_CACHE_SIZE = 100;
 
-protected final Deque sessionCreationTiming =
-new LinkedList<>();
-
-protected final Deque sessionExpirationTiming =
-new LinkedList<>();
+// Use LinkedList as the Deques are initialised by filling with null
+protected final Deque sessionCreationTiming = new 
LinkedList<>();
+protected final Deque sessionExpirationTiming = new 
LinkedList<>();
 
 /**
  * Number of sessions that have expired.


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



[tomcat] branch 10.0.x updated: Additional comment to explain choice of LinkedList

2022-10-05 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt 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 84cf12a638 Additional comment to explain choice of LinkedList
84cf12a638 is described below

commit 84cf12a638bc5415743bcde10c4191eee00fa1a1
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:01:49 2022 +0100

Additional comment to explain choice of LinkedList
---
 java/org/apache/catalina/session/ManagerBase.java | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/session/ManagerBase.java 
b/java/org/apache/catalina/session/ManagerBase.java
index e4b5662a6b..dd0ffbf223 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -120,11 +120,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
 
 protected static final int TIMING_STATS_CACHE_SIZE = 100;
 
-protected final Deque sessionCreationTiming =
-new LinkedList<>();
-
-protected final Deque sessionExpirationTiming =
-new LinkedList<>();
+// Use LinkedList as the Deques are initialised by filling with null
+protected final Deque sessionCreationTiming = new 
LinkedList<>();
+protected final Deque sessionExpirationTiming = new 
LinkedList<>();
 
 /**
  * Number of sessions that have expired.


-
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: Additional comment to explain choice of LinkedList

2022-10-05 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 22cd0726f5 Additional comment to explain choice of LinkedList
22cd0726f5 is described below

commit 22cd0726f5d629a79d9e886fe7daf01142438396
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:01:49 2022 +0100

Additional comment to explain choice of LinkedList
---
 java/org/apache/catalina/session/ManagerBase.java | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/session/ManagerBase.java 
b/java/org/apache/catalina/session/ManagerBase.java
index 7b9ab5042d..d0af97df23 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -120,11 +120,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
 
 protected static final int TIMING_STATS_CACHE_SIZE = 100;
 
-protected final Deque sessionCreationTiming =
-new LinkedList<>();
-
-protected final Deque sessionExpirationTiming =
-new LinkedList<>();
+// Use LinkedList as the Deques are initialised by filling with null
+protected final Deque sessionCreationTiming = new 
LinkedList<>();
+protected final Deque sessionExpirationTiming = new 
LinkedList<>();
 
 /**
  * Number of sessions that have expired.


-
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: Additional comment to explain choice of LinkedList

2022-10-05 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 2d0ce12c2e Additional comment to explain choice of LinkedList
2d0ce12c2e is described below

commit 2d0ce12c2e578b12cc36cd94576025c4b8b7800d
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:01:49 2022 +0100

Additional comment to explain choice of LinkedList
---
 java/org/apache/catalina/session/ManagerBase.java | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/session/ManagerBase.java 
b/java/org/apache/catalina/session/ManagerBase.java
index 97b1825b85..8893aed26f 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -119,11 +119,9 @@ public abstract class ManagerBase extends 
LifecycleMBeanBase implements Manager
 
 protected static final int TIMING_STATS_CACHE_SIZE = 100;
 
-protected final Deque sessionCreationTiming =
-new LinkedList<>();
-
-protected final Deque sessionExpirationTiming =
-new LinkedList<>();
+// Use LinkedList as the Deques are initialised by filling with null
+protected final Deque sessionCreationTiming = new 
LinkedList<>();
+protected final Deque sessionExpirationTiming = new 
LinkedList<>();
 
 /**
  * Number of sessions that have expired.


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



[tomcat] branch main updated: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 9c113f3918 Refactor. Using List interface so use ArrayList rather than 
LinkedList
9c113f3918 is described below

commit 9c113f3918dfdeb3f9c188d48878af6e6c0b6357
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:08:17 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/filters/CorsFilter.java   | 4 ++--
 java/org/apache/catalina/filters/RemoteCIDRFilter.java | 3 +--
 java/org/apache/catalina/realm/CombinedRealm.java  | 4 ++--
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index b3d187e59b..618ffb0eeb 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -18,11 +18,11 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -304,7 +304,7 @@ public class CorsFilter extends GenericFilter {
 // Section 6.2.4
 String accessControlRequestHeadersHeader = request.getHeader(
 CorsFilter.REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);
-List accessControlRequestHeaders = new LinkedList<>();
+List accessControlRequestHeaders = new ArrayList<>();
 if (accessControlRequestHeadersHeader != null &&
 !accessControlRequestHeadersHeader.trim().isEmpty()) {
 String[] headers = 
accessControlRequestHeadersHeader.trim().split(",");
diff --git a/java/org/apache/catalina/filters/RemoteCIDRFilter.java 
b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
index a134ed1d70..edbe6d8052 100644
--- a/java/org/apache/catalina/filters/RemoteCIDRFilter.java
+++ b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
@@ -22,7 +22,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import jakarta.servlet.FilterChain;
@@ -220,7 +219,7 @@ public final class RemoteCIDRFilter extends FilterBase {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {
diff --git a/java/org/apache/catalina/realm/CombinedRealm.java 
b/java/org/apache/catalina/realm/CombinedRealm.java
index 964e2a8475..573441f79c 100644
--- a/java/org/apache/catalina/realm/CombinedRealm.java
+++ b/java/org/apache/catalina/realm/CombinedRealm.java
@@ -18,8 +18,8 @@ package org.apache.catalina.realm;
 
 import java.security.Principal;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.management.ObjectName;
@@ -50,7 +50,7 @@ public class CombinedRealm extends RealmBase {
 /**
  * The list of Realms contained by this Realm.
  */
-protected final List realms = new LinkedList<>();
+protected final List realms = new ArrayList<>();
 
 /**
  * Add a realm to the list of realms that will be used to authenticate


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



[tomcat] branch 10.0.x updated: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt 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 347f6ff876 Refactor. Using List interface so use ArrayList rather than 
LinkedList
347f6ff876 is described below

commit 347f6ff876c5527db2c138414c82be9a31e08007
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:08:17 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/filters/CorsFilter.java   | 4 ++--
 java/org/apache/catalina/filters/RemoteCIDRFilter.java | 3 +--
 java/org/apache/catalina/realm/CombinedRealm.java  | 4 ++--
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index b3d187e59b..618ffb0eeb 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -18,11 +18,11 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -304,7 +304,7 @@ public class CorsFilter extends GenericFilter {
 // Section 6.2.4
 String accessControlRequestHeadersHeader = request.getHeader(
 CorsFilter.REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);
-List accessControlRequestHeaders = new LinkedList<>();
+List accessControlRequestHeaders = new ArrayList<>();
 if (accessControlRequestHeadersHeader != null &&
 !accessControlRequestHeadersHeader.trim().isEmpty()) {
 String[] headers = 
accessControlRequestHeadersHeader.trim().split(",");
diff --git a/java/org/apache/catalina/filters/RemoteCIDRFilter.java 
b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
index a134ed1d70..edbe6d8052 100644
--- a/java/org/apache/catalina/filters/RemoteCIDRFilter.java
+++ b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
@@ -22,7 +22,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import jakarta.servlet.FilterChain;
@@ -220,7 +219,7 @@ public final class RemoteCIDRFilter extends FilterBase {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {
diff --git a/java/org/apache/catalina/realm/CombinedRealm.java 
b/java/org/apache/catalina/realm/CombinedRealm.java
index 964e2a8475..573441f79c 100644
--- a/java/org/apache/catalina/realm/CombinedRealm.java
+++ b/java/org/apache/catalina/realm/CombinedRealm.java
@@ -18,8 +18,8 @@ package org.apache.catalina.realm;
 
 import java.security.Principal;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.management.ObjectName;
@@ -50,7 +50,7 @@ public class CombinedRealm extends RealmBase {
 /**
  * The list of Realms contained by this Realm.
  */
-protected final List realms = new LinkedList<>();
+protected final List realms = new ArrayList<>();
 
 /**
  * Add a realm to the list of realms that will be used to authenticate


-
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: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 771efd57a2 Refactor. Using List interface so use ArrayList rather than 
LinkedList
771efd57a2 is described below

commit 771efd57a299c86555831519a1eabf255f383cb6
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:08:17 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/filters/CorsFilter.java   | 5 ++---
 java/org/apache/catalina/filters/RemoteCIDRFilter.java | 3 +--
 java/org/apache/catalina/realm/CombinedRealm.java  | 4 ++--
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index 3e5456885f..442772e0a9 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -18,12 +18,11 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
-import java.net.URI;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -305,7 +304,7 @@ public class CorsFilter extends GenericFilter {
 // Section 6.2.4
 String accessControlRequestHeadersHeader = request.getHeader(
 CorsFilter.REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);
-List accessControlRequestHeaders = new LinkedList<>();
+List accessControlRequestHeaders = new ArrayList<>();
 if (accessControlRequestHeadersHeader != null &&
 !accessControlRequestHeadersHeader.trim().isEmpty()) {
 String[] headers = 
accessControlRequestHeadersHeader.trim().split(",");
diff --git a/java/org/apache/catalina/filters/RemoteCIDRFilter.java 
b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
index ccd76e51ef..ed56e7c6e1 100644
--- a/java/org/apache/catalina/filters/RemoteCIDRFilter.java
+++ b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
@@ -22,7 +22,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.servlet.FilterChain;
@@ -220,7 +219,7 @@ public final class RemoteCIDRFilter extends FilterBase {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {
diff --git a/java/org/apache/catalina/realm/CombinedRealm.java 
b/java/org/apache/catalina/realm/CombinedRealm.java
index 964e2a8475..573441f79c 100644
--- a/java/org/apache/catalina/realm/CombinedRealm.java
+++ b/java/org/apache/catalina/realm/CombinedRealm.java
@@ -18,8 +18,8 @@ package org.apache.catalina.realm;
 
 import java.security.Principal;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.management.ObjectName;
@@ -50,7 +50,7 @@ public class CombinedRealm extends RealmBase {
 /**
  * The list of Realms contained by this Realm.
  */
-protected final List realms = new LinkedList<>();
+protected final List realms = new ArrayList<>();
 
 /**
  * Add a realm to the list of realms that will be used to authenticate


-
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: Refactor. Using List interface so use ArrayList rather than LinkedList

2022-10-05 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 b0c1eff131 Refactor. Using List interface so use ArrayList rather than 
LinkedList
b0c1eff131 is described below

commit b0c1eff131f2bc23c6135e9dcc8076849bf77a5a
Author: Mark Thomas 
AuthorDate: Wed Oct 5 18:08:17 2022 +0100

Refactor. Using List interface so use ArrayList rather than LinkedList
---
 java/org/apache/catalina/filters/CorsFilter.java   | 5 ++---
 java/org/apache/catalina/filters/RemoteCIDRFilter.java | 3 +--
 java/org/apache/catalina/realm/CombinedRealm.java  | 4 ++--
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index 201731567e..ef0ca6f065 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -17,12 +17,11 @@
 package org.apache.catalina.filters;
 
 import java.io.IOException;
-import java.net.URI;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -316,7 +315,7 @@ public class CorsFilter implements Filter {
 // Section 6.2.4
 String accessControlRequestHeadersHeader = request.getHeader(
 CorsFilter.REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);
-List accessControlRequestHeaders = new LinkedList<>();
+List accessControlRequestHeaders = new ArrayList<>();
 if (accessControlRequestHeadersHeader != null &&
 !accessControlRequestHeadersHeader.trim().isEmpty()) {
 String[] headers = 
accessControlRequestHeadersHeader.trim().split(",");
diff --git a/java/org/apache/catalina/filters/RemoteCIDRFilter.java 
b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
index ccd76e51ef..ed56e7c6e1 100644
--- a/java/org/apache/catalina/filters/RemoteCIDRFilter.java
+++ b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
@@ -22,7 +22,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.servlet.FilterChain;
@@ -220,7 +219,7 @@ public final class RemoteCIDRFilter extends FilterBase {
 return Collections.emptyList();
 }
 
-final List messages = new LinkedList<>();
+final List messages = new ArrayList<>();
 NetMask nm;
 
 for (final String s : input.split("\\s*,\\s*")) {
diff --git a/java/org/apache/catalina/realm/CombinedRealm.java 
b/java/org/apache/catalina/realm/CombinedRealm.java
index e0b82b375b..dc2c23eaa5 100644
--- a/java/org/apache/catalina/realm/CombinedRealm.java
+++ b/java/org/apache/catalina/realm/CombinedRealm.java
@@ -18,8 +18,8 @@ package org.apache.catalina.realm;
 
 import java.security.Principal;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 
 import javax.management.ObjectName;
@@ -50,7 +50,7 @@ public class CombinedRealm extends RealmBase {
 /**
  * The list of Realms contained by this Realm.
  */
-protected final List realms = new LinkedList<>();
+protected final List realms = new ArrayList<>();
 
 /**
  * Descriptive information about this Realm implementation.


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



[GitHub] [tomcat] boahc077 opened a new pull request, #554: ci: add minimum GitHub token permissions for workflow

2022-10-05 Thread GitBox


boahc077 opened a new pull request, #554:
URL: https://github.com/apache/tomcat/pull/554

   ### Description
   This PR adds minimum token permissions for the GITHUB_TOKEN in GitHub 
Actions workflows using 
[secure-workflows](https://github.com/step-security/secure-workflows).
   
   The GitHub Actions workflow has a GITHUB_TOKEN with write access to multiple 
scopes. Here is an example of the permissions in one of the workflow runs:
   
https://github.com/apache/tomcat/actions/runs/3161137642/jobs/5146391221#step:1:19
   
   After this change, the scopes will be reduced to the minimum needed for the 
following workflow:
   
   - ci.yml
   
   
   ### Motivation and Context
   
   - This is a security best practice, so if the GITHUB_TOKEN is compromised 
due to a vulnerability or compromised Action, the damage will be reduced.
   - [GitHub 
recommends](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token)
 defining minimum GITHUB_TOKEN permissions.
   - The Open Source Security Foundation (OpenSSF) 
[Scorecards](https://github.com/ossf/scorecard) also treats not setting token 
permissions as a high-risk issue. This change will help increase the Scorecard 
score for this repository.
   
   Signed-off-by: Ashish Kurmi 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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



[GitHub] [tomcat] markt-asf commented on pull request #554: ci: add minimum GitHub token permissions for workflow

2022-10-05 Thread GitBox


markt-asf commented on PR #554:
URL: https://github.com/apache/tomcat/pull/554#issuecomment-1265360483

   Unnecessary. Handled by org level permissions.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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



[GitHub] [tomcat] markt-asf closed pull request #554: ci: add minimum GitHub token permissions for workflow

2022-10-05 Thread GitBox


markt-asf closed pull request #554: ci: add minimum GitHub token permissions 
for workflow
URL: https://github.com/apache/tomcat/pull/554


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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



[GitHub] [tomcat] markt-asf closed pull request #553: Undocumented nonce parameter name

2022-10-05 Thread GitBox


markt-asf closed pull request #553: Undocumented nonce parameter name
URL: https://github.com/apache/tomcat/pull/553


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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



[GitHub] [tomcat] markt-asf commented on pull request #553: Undocumented nonce parameter name

2022-10-05 Thread GitBox


markt-asf commented on PR #553:
URL: https://github.com/apache/tomcat/pull/553#issuecomment-1265376262

   Thanks for the PR. Applied manually so I could tweak the wording.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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



Re: [VOTE] Release Apache Tomcat 9.0.68

2022-10-05 Thread Emmanuel Bourg

Le 03/10/2022 à 22:05, Mark Thomas a écrit :


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


Looks good on Debian with OpenJDK 11.

Emmanuel Bourg

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