[Bug 60411] Rewrite's redirect implementation does not correspond to the documentation

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

--- Comment #7 from daftartogel  ---
Bermain togel ya harus http://178.128.89.241";>Bandar Togel Resmi .
Jika tidak, kamu bisa kena tipu. Rupiahtoto dijmin bandar togel resmi. silakan
daftar togel resmi dan dapatkan banyak cuan yang bisa buat jajan. Jangan
tanggung, kamu daftar saja di sini http://199.188.206.85/";>http://199.188.206.85/ atau klik link ini ya
https://david-lila.com/";>Bandar Togel Terpercaya

-- 
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 Native 1.2.30

2021-06-03 Thread Rémy Maucherat
On Tue, Jun 1, 2021 at 11:53 AM Mark Thomas  wrote:

> Resending with correct subject line...
>
> Version 1.2.30 includes the following changes compared to 1.2.28
>
> - Fix an issue where some Windows systems in some configurations would
>only listen on IPv6 addresses on dual stack systems even though
>configured to listen on both IPv6 and IPv4 addresses.
>
> - Complete the fix for BZ 65181
>
> - Correct constants used for Windows versions. Expand versions
>supported.
>
> The proposed release artefacts can be found at [1],
> and the build was done using tag [2].
>
> The Apache Tomcat Native 1.2.30 release is
>   [X] Stable, go ahead and release
>   [ ] Broken because of ...
>

Rémy

>
> Thanks,
>
> Mark
>
>
> [1]
>
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-connectors/native/1.2.30
> [2]
>
> https://gitbox.apache.org/repos/asf?p=tomcat-native.git;a=commit;h=8b1baaa1af07c07a9f44f9adb31b7dbdabd6ff39
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>


[Bug 65340] Hpack decode NegativeArraySizeException: -1

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

--- Comment #11 from Remy Maucherat  ---
This is correct, the original code has the fix now. I'll do that.

-- 
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 main updated: 65340: Fix NegativeArraySizeException exception in hpack decoder

2021-06-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 5869763  65340: Fix NegativeArraySizeException exception in hpack 
decoder
5869763 is described below

commit 586976338dddb70a0e40619726261f667548b563
Author: remm 
AuthorDate: Thu Jun 3 10:53:21 2021 +0200

65340: Fix NegativeArraySizeException exception in hpack decoder

Submitted by Thomas.
---
 java/org/apache/coyote/http2/HpackDecoder.java | 2 +-
 webapps/docs/changelog.xml | 7 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/HpackDecoder.java 
b/java/org/apache/coyote/http2/HpackDecoder.java
index 517dc0b..02802ad 100644
--- a/java/org/apache/coyote/http2/HpackDecoder.java
+++ b/java/org/apache/coyote/http2/HpackDecoder.java
@@ -213,7 +213,7 @@ public class HpackDecoder {
 byte data = buffer.get(buffer.position());
 
 int length = Hpack.decodeInteger(buffer, 7);
-if (buffer.remaining() < length) {
+if (buffer.remaining() < length || length == -1) {
 return null;
 }
 boolean huffman = (data & 0b1000) != 0;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index adbabfb..f56b524 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -176,6 +176,13 @@
   
 Simplify AprEndpoint socket bind for all platforms. (michaelo)
   
+  
+65340: Add missing check for a negative return value for
+Hpack.decodeInteger in the HpackDecoder,
+which could cause a NegativeArraySizeException exception.
+Submitted by Thomas, and verified the fix is present in the donated
+hpack code in a further update. (remm)
+  
 
   
   

-
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: 65340: Fix NegativeArraySizeException exception in hpack decoder

2021-06-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 c074807  65340: Fix NegativeArraySizeException exception in hpack 
decoder
c074807 is described below

commit c07480764579cfeb334fdf354ae0fd8320264e20
Author: remm 
AuthorDate: Thu Jun 3 10:53:21 2021 +0200

65340: Fix NegativeArraySizeException exception in hpack decoder

Submitted by Thomas.
---
 java/org/apache/coyote/http2/HpackDecoder.java | 2 +-
 webapps/docs/changelog.xml | 7 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/HpackDecoder.java 
b/java/org/apache/coyote/http2/HpackDecoder.java
index 517dc0b..02802ad 100644
--- a/java/org/apache/coyote/http2/HpackDecoder.java
+++ b/java/org/apache/coyote/http2/HpackDecoder.java
@@ -213,7 +213,7 @@ public class HpackDecoder {
 byte data = buffer.get(buffer.position());
 
 int length = Hpack.decodeInteger(buffer, 7);
-if (buffer.remaining() < length) {
+if (buffer.remaining() < length || length == -1) {
 return null;
 }
 boolean huffman = (data & 0b1000) != 0;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 41b1899..e25ae94 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -155,6 +155,13 @@
   
 Simplify AprEndpoint socket bind for all platforms. (michaelo)
   
+  
+65340: Add missing check for a negative return value for
+Hpack.decodeInteger in the HpackDecoder,
+which could cause a NegativeArraySizeException exception.
+Submitted by Thomas, and verified the fix is present in the donated
+hpack code in a further update. (remm)
+  
 
   
   

-
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: 65340: Fix NegativeArraySizeException exception in hpack decoder

2021-06-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 56c256a  65340: Fix NegativeArraySizeException exception in hpack 
decoder
56c256a is described below

commit 56c256a5969489ef6731f0f1c1726f8c2184c44b
Author: remm 
AuthorDate: Thu Jun 3 10:53:21 2021 +0200

65340: Fix NegativeArraySizeException exception in hpack decoder

Submitted by Thomas.
---
 java/org/apache/coyote/http2/HpackDecoder.java | 2 +-
 webapps/docs/changelog.xml | 7 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/HpackDecoder.java 
b/java/org/apache/coyote/http2/HpackDecoder.java
index 517dc0b..02802ad 100644
--- a/java/org/apache/coyote/http2/HpackDecoder.java
+++ b/java/org/apache/coyote/http2/HpackDecoder.java
@@ -213,7 +213,7 @@ public class HpackDecoder {
 byte data = buffer.get(buffer.position());
 
 int length = Hpack.decodeInteger(buffer, 7);
-if (buffer.remaining() < length) {
+if (buffer.remaining() < length || length == -1) {
 return null;
 }
 boolean huffman = (data & 0b1000) != 0;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f26eaf9..b2074d0 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -181,6 +181,13 @@
   
 Optimize NIO selector handling for Java 11. (remm)
   
+  
+65340: Add missing check for a negative return value for
+Hpack.decodeInteger in the HpackDecoder,
+which could cause a NegativeArraySizeException exception.
+Submitted by Thomas, and verified the fix is present in the donated
+hpack code in a further update. (remm)
+  
 
   
   

-
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: 65340: Fix NegativeArraySizeException exception in hpack decoder

2021-06-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 b90ed2f  65340: Fix NegativeArraySizeException exception in hpack 
decoder
b90ed2f is described below

commit b90ed2f58ad781cb1b9aa58d91243ded00a0bb83
Author: remm 
AuthorDate: Thu Jun 3 10:53:21 2021 +0200

65340: Fix NegativeArraySizeException exception in hpack decoder

Submitted by Thomas.
---
 java/org/apache/coyote/http2/HpackDecoder.java | 2 +-
 webapps/docs/changelog.xml | 7 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/HpackDecoder.java 
b/java/org/apache/coyote/http2/HpackDecoder.java
index 517dc0b..02802ad 100644
--- a/java/org/apache/coyote/http2/HpackDecoder.java
+++ b/java/org/apache/coyote/http2/HpackDecoder.java
@@ -213,7 +213,7 @@ public class HpackDecoder {
 byte data = buffer.get(buffer.position());
 
 int length = Hpack.decodeInteger(buffer, 7);
-if (buffer.remaining() < length) {
+if (buffer.remaining() < length || length == -1) {
 return null;
 }
 boolean huffman = (data & 0b1000) != 0;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9cd71f5..8be9dfb 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -169,6 +169,13 @@
   
 Simplify AprEndpoint socket bind for all platforms. (michaelo)
   
+  
+65340: Add missing check for a negative return value for
+Hpack.decodeInteger in the HpackDecoder,
+which could cause a NegativeArraySizeException exception.
+Submitted by Thomas, and verified the fix is present in the donated
+hpack code in a further update. (remm)
+  
 
   
   

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



[Bug 65340] Hpack decode NegativeArraySizeException: -1

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

Remy Maucherat  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #12 from Remy Maucherat  ---
The fix will be in 10.0.7, 9.0.47 and 8.5.67. Thanks.

-- 
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 65339] UserDatabaseRealm does not rely on cached roles only

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

Remy Maucherat  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 OS||All
 Resolution|--- |WONTFIX

--- Comment #1 from Remy Maucherat  ---
It was agreed upon that this was the main point of the user database.
Ultimately, if the feature is dropped, we might as well drop that realm since
the memory one is the only implementation [it was never intended to be the
case, Craig wanted more but it didn't happen]. The main problem with dropping
it is it's in the default configuration, so it would cause a huge mess.

Note: If clustering or serialization comes into play, then the principal will
get disconnected from the database and it will become a regular static
GenericPrincipal. In an enhancement, I could add creative code to automatically
reconnect (the db info would need to be added to the principal which is easy to
do).

-- 
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 65342] IllegalArgumentException "endpointClass cannot be null" after upgrade to 9.0.46

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

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Mark Thomas  ---
Fixed in:
- 10.0.x for 10.0.7 onwards
- 9.0.x for 9.0.47 onwards
- 8.5.x for 8.5.67 onwards

-- 
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 65340] Hpack decode NegativeArraySizeException: -1

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

--- Comment #13 from Joakim Erdfelt  ---
Does this HPACK fix also address the HPACK index issue reported (at the Jetty
issue tracker) against Tomcat?

https://github.com/eclipse/jetty.project/issues/6341

-- 
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 65350] New: The index ID of the request header that Jetty sent to Tomcat was not found in the index table on the Tomcat side

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

Bug ID: 65350
   Summary: The index ID of the request header that Jetty sent to
Tomcat was not found in the index table on the Tomcat
side
   Product: Tomcat 9
   Version: 9.0.45
  Hardware: PC
OS: Linux
Status: NEW
  Severity: critical
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: qingdaoh...@163.com
  Target Milestone: -

Jetty version
9.4.41.v20210516

OS type/version
Centos 7

I use jetty http client to call tomcat server in h2c protocol. I encountered
the following exception after running about 8 hours.
It seems the header tables are not sync between jetty and tomcat.

java.lang.NullPointerException
at org.apache.coyote.http2.HpackDecoder.handleIndex(HpackDecoder.java:267)
at org.apache.coyote.http2.HpackDecoder.decode(HpackDecoder.java:109)
at org.apache.coyote.http2.Http2Parser.readHeaderPayload(Http2Parser.java:486)
at org.apache.coyote.http2.Http2Parser.readHeadersFrame(Http2Parser.java:270)
at
org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:251)
at
org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:164)
at
org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed(SocketWrapperBase.java:1089)
at
org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.run(NioEndpoint.java:1621)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)

-- 
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 65351] New: Regression in UserDatabaseRealm: Groups are no longer considered in hasRole

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

Bug ID: 65351
   Summary: Regression in UserDatabaseRealm: Groups are no longer
considered in hasRole
   Product: Tomcat 10
   Version: 10.0.6
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: c.kl...@datagis.com
  Target Milestone: --

There's a regression bug in the reworked UserDatabaseRealm. The method
User.isInRole(Role) called in line 276 (that's in the UserDatabasePrincipal
class) does NOT consider roles inherited from Groups, the user is a member of.

Although the method's documentation states this explicitly, its name actually
does not really suggest this behavior :(

A new method User.hasEffectiveRole(Role) (or isInEffectiveRole to stay
consistent with the naming scheme) would be one of the possible options:

public boolean isInEffectiveRole(Role role) {
  synchronized (groups) {
for (Group group : groups) {
  if (group.isInRole(role)) {
return true;
  }
}
  }
  return false;
}

Otherwise, group -> role expansion must be performed in the hasRole method in
class UserDatabasePrincipal.

-- 
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 main updated: Fix missing code from the original hasRole

2021-06-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 74ce2d0  Fix missing code from the original hasRole
74ce2d0 is described below

commit 74ce2d085bb2c08778b9d668c3e38cdcb647f65f
Author: remm 
AuthorDate: Thu Jun 3 16:49:52 2021 +0200

Fix missing code from the original hasRole

Otherwise groups were not considered. No idea why I removed it.
Submitted by Carsten Klein.
---
 java/org/apache/catalina/realm/UserDatabaseRealm.java | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java 
b/java/org/apache/catalina/realm/UserDatabaseRealm.java
index 714fd50..bb27099 100644
--- a/java/org/apache/catalina/realm/UserDatabaseRealm.java
+++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java
@@ -273,7 +273,17 @@ public class UserDatabaseRealm extends RealmBase {
 if (dbrole == null) {
 return false;
 }
-return user.isInRole(dbrole);
+if (user.isInRole(dbrole)) {
+return true;
+}
+Iterator groups = user.getGroups();
+while (groups.hasNext()) {
+Group group = groups.next();
+if (group.isInRole(dbrole)) {
+return true;
+}
+}
+return false;
 }
 
 private Object writeReplace() {

-
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: Fix missing code from the original hasRole

2021-06-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 08e6194  Fix missing code from the original hasRole
08e6194 is described below

commit 08e619471ec708130d81ac112f1a2ed338891664
Author: remm 
AuthorDate: Thu Jun 3 16:49:52 2021 +0200

Fix missing code from the original hasRole

Otherwise groups were not considered. No idea why I removed it.
Submitted by Carsten Klein.
---
 java/org/apache/catalina/realm/UserDatabaseRealm.java | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java 
b/java/org/apache/catalina/realm/UserDatabaseRealm.java
index 714fd50..bb27099 100644
--- a/java/org/apache/catalina/realm/UserDatabaseRealm.java
+++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java
@@ -273,7 +273,17 @@ public class UserDatabaseRealm extends RealmBase {
 if (dbrole == null) {
 return false;
 }
-return user.isInRole(dbrole);
+if (user.isInRole(dbrole)) {
+return true;
+}
+Iterator groups = user.getGroups();
+while (groups.hasNext()) {
+Group group = groups.next();
+if (group.isInRole(dbrole)) {
+return true;
+}
+}
+return false;
 }
 
 private Object writeReplace() {

-
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: Fix missing code from the original hasRole

2021-06-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 2db0abd  Fix missing code from the original hasRole
2db0abd is described below

commit 2db0abd4af49cb3bb01cfe20f90049f760252f9f
Author: remm 
AuthorDate: Thu Jun 3 16:49:52 2021 +0200

Fix missing code from the original hasRole

Otherwise groups were not considered. No idea why I removed it.
Submitted by Carsten Klein.
---
 java/org/apache/catalina/realm/UserDatabaseRealm.java | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java 
b/java/org/apache/catalina/realm/UserDatabaseRealm.java
index 181e2ec..f4a86ef 100644
--- a/java/org/apache/catalina/realm/UserDatabaseRealm.java
+++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java
@@ -273,7 +273,17 @@ public class UserDatabaseRealm extends RealmBase {
 if (dbrole == null) {
 return false;
 }
-return user.isInRole(dbrole);
+if (user.isInRole(dbrole)) {
+return true;
+}
+Iterator groups = user.getGroups();
+while (groups.hasNext()) {
+Group group = groups.next();
+if (group.isInRole(dbrole)) {
+return true;
+}
+}
+return false;
 }
 
 private Object writeReplace() {

-
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: Fix missing code from the original hasRole

2021-06-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 482bea4  Fix missing code from the original hasRole
482bea4 is described below

commit 482bea4dcfbd52865ff36c04a4896872bbe32bfa
Author: remm 
AuthorDate: Thu Jun 3 16:49:52 2021 +0200

Fix missing code from the original hasRole

Otherwise groups were not considered. No idea why I removed it.
Submitted by Carsten Klein.
---
 java/org/apache/catalina/realm/UserDatabaseRealm.java | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java 
b/java/org/apache/catalina/realm/UserDatabaseRealm.java
index 76757da..eb63a5c 100644
--- a/java/org/apache/catalina/realm/UserDatabaseRealm.java
+++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java
@@ -289,7 +289,17 @@ public class UserDatabaseRealm extends RealmBase {
 if (dbrole == null) {
 return false;
 }
-return user.isInRole(dbrole);
+if (user.isInRole(dbrole)) {
+return true;
+}
+Iterator groups = user.getGroups();
+while (groups.hasNext()) {
+Group group = groups.next();
+if (group.isInRole(dbrole)) {
+return true;
+}
+}
+return false;
 }
 
 private Object writeReplace() {

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



[Bug 65351] Regression in UserDatabaseRealm: Groups are no longer considered in hasRole

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

--- Comment #1 from cklein05  ---
Provided method was not complete, in order to test for all/effective roles, of
course (my bad). Testing explicitly assigned roles is still required so, this
should be the correct version:

public boolean isInEffectiveRole(Role role) {
  if (isInRole(role)) {
return true;
  }
  synchronized (groups) {
for (Group group : groups) {
  if (group.isInRole(role)) {
return true;
  }
}
  }
  return false;
}

-- 
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 65351] Regression in UserDatabaseRealm: Groups are no longer considered in hasRole

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

Remy Maucherat  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Remy Maucherat  ---
(In reply to cklein05 from comment #1)
> Provided method was not complete, in order to test for all/effective roles,
> of course (my bad). Testing explicitly assigned roles is still required so,
> this should be the correct version:

Makes sense. I simply took the original hasRole override code I removed for no
reason. Seems like a case of badcutandpaste-itis.

We still need to decide on what to do with the database realm, since without an
expansion to more database types I cannot see what it can be used for.

> public boolean isInEffectiveRole(Role role) {
>   if (isInRole(role)) {
> return true;
>   }
>   synchronized (groups) {
> for (Group group : groups) {
>   if (group.isInRole(role)) {
> return true;
>   }
> }
>   }
>   return false;
> }

-- 
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 65351] Regression in UserDatabaseRealm: Groups are no longer considered in hasRole

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

--- Comment #3 from cklein05  ---
That way it should work again :)

Nor sure whether I can help much with that decision. The UserDatabaseRealm is
the default one and MemoryRealm's Realm states it's not intended for production
use. Changing this will be a lot of work and could only be done for the HEAD
version (otherwise we'll use the live update feature for existing setups - same
as with my initial PR).

Since I'm interested in porting back my enhancement (which now honors live
updates of the UserDatabase with the UserDatabaseRealm as well), I favor a
solution that works for all versions of Tomcat.

Also, for my mind, MemoryRealm has some more drawbacks so, I don't recommend
making it the new standard Realm:

- Unfortunate realm name: People know what a UserDatabase is. Although they
might as well know what Memory is, due to the realm's name it's not so obvious,
that this Realm is feed by the tomcat-users.xml file.

- Location of the XML file must/could explicitly be specified by the (real)
path through the 'pathname' configuration attribute. It's no JNDI resource.

If you really want to remove UserDatabaseRealm, could this probably be done
AFTER my enhancement is in place (hopefully) and ported back to the other
versions?

-- 
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 main updated: Clean-up. Fix indents.

2021-06-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 f495c46  Clean-up. Fix indents.
f495c46 is described below

commit f495c461ecc881a4b21a40c1b1994ebdfdc7af31
Author: Mark Thomas 
AuthorDate: Thu Jun 3 16:52:16 2021 +0100

Clean-up. Fix indents.
---
 java/jakarta/servlet/http/HttpServlet.java | 26 +-
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 15ad35c..9c001b6 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -87,10 +87,8 @@ public abstract class HttpServlet extends GenericServlet {
 private static final String HEADER_IFMODSINCE = "If-Modified-Since";
 private static final String HEADER_LASTMOD = "Last-Modified";
 
-private static final String LSTRING_FILE =
-"jakarta.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"jakarta.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final Object cachedAllowHeaderValueLock = new Object();
 private volatile String cachedAllowHeaderValue = null;
@@ -509,13 +507,9 @@ public abstract class HttpServlet extends GenericServlet {
 Method[] thisMethods = c.getDeclaredMethods();
 
 if ((parentMethods != null) && (parentMethods.length > 0)) {
-Method[] allMethods =
-new Method[parentMethods.length + thisMethods.length];
-System.arraycopy(parentMethods, 0, allMethods, 0,
- parentMethods.length);
-System.arraycopy(thisMethods, 0, allMethods, parentMethods.length,
- thisMethods.length);
-
+Method[] allMethods = new Method[parentMethods.length + 
thisMethods.length];
+System.arraycopy(parentMethods, 0, allMethods, 0, 
parentMethods.length);
+System.arraycopy(thisMethods, 0, allMethods, parentMethods.length, 
thisMethods.length);
 thisMethods = allMethods;
 }
 
@@ -602,8 +596,8 @@ public abstract class HttpServlet extends GenericServlet {
 int responseLength;
 
 String CRLF = "\r\n";
-StringBuilder buffer = new StringBuilder("TRACE 
").append(req.getRequestURI())
-.append(" ").append(req.getProtocol());
+StringBuilder buffer =
+new StringBuilder("TRACE 
").append(req.getRequestURI()).append(" ").append(req.getProtocol());
 
 Enumeration reqHeaderEnum = req.getHeaderNames();
 
@@ -908,10 +902,8 @@ class NoBodyResponse extends HttpServletResponseWrapper {
 // file private
 class NoBodyOutputStream extends ServletOutputStream {
 
-private static final String LSTRING_FILE =
-"jakarta.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"jakarta.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final HttpServletResponse response;
 private boolean flushed = false;

-
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: Clean-up. Fix indents.

2021-06-03 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 718b0ea  Clean-up. Fix indents.
718b0ea is described below

commit 718b0eaecd17e2bafd24fcca03180b5cd126c20b
Author: Mark Thomas 
AuthorDate: Thu Jun 3 16:52:16 2021 +0100

Clean-up. Fix indents.
---
 java/jakarta/servlet/http/HttpServlet.java | 26 +-
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 15ad35c..9c001b6 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -87,10 +87,8 @@ public abstract class HttpServlet extends GenericServlet {
 private static final String HEADER_IFMODSINCE = "If-Modified-Since";
 private static final String HEADER_LASTMOD = "Last-Modified";
 
-private static final String LSTRING_FILE =
-"jakarta.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"jakarta.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final Object cachedAllowHeaderValueLock = new Object();
 private volatile String cachedAllowHeaderValue = null;
@@ -509,13 +507,9 @@ public abstract class HttpServlet extends GenericServlet {
 Method[] thisMethods = c.getDeclaredMethods();
 
 if ((parentMethods != null) && (parentMethods.length > 0)) {
-Method[] allMethods =
-new Method[parentMethods.length + thisMethods.length];
-System.arraycopy(parentMethods, 0, allMethods, 0,
- parentMethods.length);
-System.arraycopy(thisMethods, 0, allMethods, parentMethods.length,
- thisMethods.length);
-
+Method[] allMethods = new Method[parentMethods.length + 
thisMethods.length];
+System.arraycopy(parentMethods, 0, allMethods, 0, 
parentMethods.length);
+System.arraycopy(thisMethods, 0, allMethods, parentMethods.length, 
thisMethods.length);
 thisMethods = allMethods;
 }
 
@@ -602,8 +596,8 @@ public abstract class HttpServlet extends GenericServlet {
 int responseLength;
 
 String CRLF = "\r\n";
-StringBuilder buffer = new StringBuilder("TRACE 
").append(req.getRequestURI())
-.append(" ").append(req.getProtocol());
+StringBuilder buffer =
+new StringBuilder("TRACE 
").append(req.getRequestURI()).append(" ").append(req.getProtocol());
 
 Enumeration reqHeaderEnum = req.getHeaderNames();
 
@@ -908,10 +902,8 @@ class NoBodyResponse extends HttpServletResponseWrapper {
 // file private
 class NoBodyOutputStream extends ServletOutputStream {
 
-private static final String LSTRING_FILE =
-"jakarta.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"jakarta.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final HttpServletResponse response;
 private boolean flushed = false;

-
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: Clean-up. Fix indents.

2021-06-03 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 f57e8dd  Clean-up. Fix indents.
f57e8dd is described below

commit f57e8dd63c7c32575f13228be6c221217889d15f
Author: Mark Thomas 
AuthorDate: Thu Jun 3 16:52:16 2021 +0100

Clean-up. Fix indents.
---
 java/javax/servlet/http/HttpServlet.java | 26 +-
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 49d77e8..1b252a2 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -87,10 +87,8 @@ public abstract class HttpServlet extends GenericServlet {
 private static final String HEADER_IFMODSINCE = "If-Modified-Since";
 private static final String HEADER_LASTMOD = "Last-Modified";
 
-private static final String LSTRING_FILE =
-"javax.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 
 /**
@@ -423,13 +421,9 @@ public abstract class HttpServlet extends GenericServlet {
 Method[] thisMethods = c.getDeclaredMethods();
 
 if ((parentMethods != null) && (parentMethods.length > 0)) {
-Method[] allMethods =
-new Method[parentMethods.length + thisMethods.length];
-System.arraycopy(parentMethods, 0, allMethods, 0,
- parentMethods.length);
-System.arraycopy(thisMethods, 0, allMethods, parentMethods.length,
- thisMethods.length);
-
+Method[] allMethods = new Method[parentMethods.length + 
thisMethods.length];
+System.arraycopy(parentMethods, 0, allMethods, 0, 
parentMethods.length);
+System.arraycopy(thisMethods, 0, allMethods, parentMethods.length, 
thisMethods.length);
 thisMethods = allMethods;
 }
 
@@ -593,8 +587,8 @@ public abstract class HttpServlet extends GenericServlet {
 int responseLength;
 
 String CRLF = "\r\n";
-StringBuilder buffer = new StringBuilder("TRACE 
").append(req.getRequestURI())
-.append(" ").append(req.getProtocol());
+StringBuilder buffer =
+new StringBuilder("TRACE 
").append(req.getRequestURI()).append(" ").append(req.getProtocol());
 
 Enumeration reqHeaderEnum = req.getHeaderNames();
 
@@ -864,10 +858,8 @@ class NoBodyResponse extends HttpServletResponseWrapper {
 // file private
 class NoBodyOutputStream extends ServletOutputStream {
 
-private static final String LSTRING_FILE =
-"javax.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final HttpServletResponse response;
 private boolean flushed = false;

-
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: Clean-up. Fix indents.

2021-06-03 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 0704475  Clean-up. Fix indents.
0704475 is described below

commit 0704475028478757eb31578e2b9fe24dbd0da8da
Author: Mark Thomas 
AuthorDate: Thu Jun 3 16:52:16 2021 +0100

Clean-up. Fix indents.
---
 java/javax/servlet/http/HttpServlet.java | 26 +-
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 49d77e8..1b252a2 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -87,10 +87,8 @@ public abstract class HttpServlet extends GenericServlet {
 private static final String HEADER_IFMODSINCE = "If-Modified-Since";
 private static final String HEADER_LASTMOD = "Last-Modified";
 
-private static final String LSTRING_FILE =
-"javax.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 
 /**
@@ -423,13 +421,9 @@ public abstract class HttpServlet extends GenericServlet {
 Method[] thisMethods = c.getDeclaredMethods();
 
 if ((parentMethods != null) && (parentMethods.length > 0)) {
-Method[] allMethods =
-new Method[parentMethods.length + thisMethods.length];
-System.arraycopy(parentMethods, 0, allMethods, 0,
- parentMethods.length);
-System.arraycopy(thisMethods, 0, allMethods, parentMethods.length,
- thisMethods.length);
-
+Method[] allMethods = new Method[parentMethods.length + 
thisMethods.length];
+System.arraycopy(parentMethods, 0, allMethods, 0, 
parentMethods.length);
+System.arraycopy(thisMethods, 0, allMethods, parentMethods.length, 
thisMethods.length);
 thisMethods = allMethods;
 }
 
@@ -593,8 +587,8 @@ public abstract class HttpServlet extends GenericServlet {
 int responseLength;
 
 String CRLF = "\r\n";
-StringBuilder buffer = new StringBuilder("TRACE 
").append(req.getRequestURI())
-.append(" ").append(req.getProtocol());
+StringBuilder buffer =
+new StringBuilder("TRACE 
").append(req.getRequestURI()).append(" ").append(req.getProtocol());
 
 Enumeration reqHeaderEnum = req.getHeaderNames();
 
@@ -864,10 +858,8 @@ class NoBodyResponse extends HttpServletResponseWrapper {
 // file private
 class NoBodyOutputStream extends ServletOutputStream {
 
-private static final String LSTRING_FILE =
-"javax.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings =
-ResourceBundle.getBundle(LSTRING_FILE);
+private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
+private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
 
 private final HttpServletResponse response;
 private boolean flushed = false;

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



[Bug 65351] Regression in UserDatabaseRealm: Groups are no longer considered in hasRole

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

--- Comment #4 from Remy Maucherat  ---
(In reply to cklein05 from comment #3)
> If you really want to remove UserDatabaseRealm, could this probably be done
> AFTER my enhancement is in place (hopefully) and ported back to the other
> versions?

You have more than enough time to do anything you like ! Even if it gets
removed (maybe ...) it would still take a while.

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



[GitHub] [tomcat] rohini2021 opened a new pull request #421: Change log level from error to debug

2021-06-03 Thread GitBox


rohini2021 opened a new pull request #421:
URL: https://github.com/apache/tomcat/pull/421


   Currently, in reconnectIfExpired(), reconnection failure is producing an 
error level log. This causes a lot of false positive in our alerting systems. 
This should be changed to debug level log.


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

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 Native 1.2.30

2021-06-03 Thread Mark Thomas

On 01/06/2021 10:53, Mark Thomas wrote:

The Apache Tomcat Native 1.2.30 release is
  [X] Stable, go ahead and release
  [ ] Broken because of ...


Unit tests pass with latest 10.1.x on Windows, MacOS and Linux.

Mark

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



[tomcat] branch main updated: No need for these internal classes to be package visible.

2021-06-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 13f85a8  No need for these internal classes to be package visible.
13f85a8 is described below

commit 13f85a87233564c1d1e8cb017bfc2415caab62b0
Author: Mark Thomas 
AuthorDate: Thu Jun 3 17:41:53 2021 +0100

No need for these internal classes to be package visible.

While the (removed in this commit) comments indicate that
NoBodyOutputStream and NoBodyResponse were intended to be private to
HttpServlet, there were implemented as package private. Refactor so they
are private to HttpServlet.
---
 java/jakarta/servlet/http/HttpServlet.java | 245 ++---
 1 file changed, 118 insertions(+), 127 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 9c001b6..77e8c62 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -800,167 +800,158 @@ public abstract class HttpServlet extends 
GenericServlet {
 return true;
 }
 }
-}
 
 
-/*
- * A response wrapper for use in (dumb) "HEAD" support.
- * This just swallows that body, counting the bytes in order to set
- * the content length appropriately.  All other methods delegate to the
- * wrapped HTTP Servlet Response object.
- */
-// file private
-class NoBodyResponse extends HttpServletResponseWrapper {
-private final NoBodyOutputStream noBody;
-private PrintWriter writer;
-private boolean didSetContentLength;
-
-// file private
-NoBodyResponse(HttpServletResponse r) {
-super(r);
-noBody = new NoBodyOutputStream(this);
-}
+/*
+ * A response wrapper for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately.  All other methods delegate to the
+ * wrapped HTTP Servlet Response object.
+ */
+private static class NoBodyResponse extends HttpServletResponseWrapper {
+private final NoBodyOutputStream noBody;
+private PrintWriter writer;
+private boolean didSetContentLength;
+
+private NoBodyResponse(HttpServletResponse r) {
+super(r);
+noBody = new NoBodyOutputStream(this);
+}
 
-// file private
-void setContentLength() {
-if (!didSetContentLength) {
-if (writer != null) {
-writer.flush();
+private void setContentLength() {
+if (!didSetContentLength) {
+if (writer != null) {
+writer.flush();
+}
+super.setContentLength(noBody.getContentLength());
 }
-super.setContentLength(noBody.getContentLength());
 }
-}
 
 
-// SERVLET RESPONSE interface methods
-
-@Override
-public void setContentLength(int len) {
-super.setContentLength(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLength(int len) {
+super.setContentLength(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setContentLengthLong(long len) {
-super.setContentLengthLong(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLengthLong(long len) {
+super.setContentLengthLong(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setHeader(String name, String value) {
-super.setHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setHeader(String name, String value) {
+super.setHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addHeader(String name, String value) {
-super.addHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addHeader(String name, String value) {
+super.addHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void setIntHeader(String name, int value) {
-super.setIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setIntHeader(String name, int value) {
+super.setIntHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addIntHeader(String name, int value) {
-super.addIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addIntHeader(String name, int value) {
+super.addIntHeader(name, value);
+checkHeader(name);
+}
 
-private void checkHeader(String name) {
-if ("content-leng

[tomcat] branch 10.0.x updated: No need for these internal classes to be package visible.

2021-06-03 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 65a8499  No need for these internal classes to be package visible.
65a8499 is described below

commit 65a849911966ffbfbe93275cca11deefaa22c079
Author: Mark Thomas 
AuthorDate: Thu Jun 3 17:41:53 2021 +0100

No need for these internal classes to be package visible.

While the (removed in this commit) comments indicate that
NoBodyOutputStream and NoBodyResponse were intended to be private to
HttpServlet, there were implemented as package private. Refactor so they
are private to HttpServlet.
---
 java/jakarta/servlet/http/HttpServlet.java | 245 ++---
 1 file changed, 118 insertions(+), 127 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 9c001b6..77e8c62 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -800,167 +800,158 @@ public abstract class HttpServlet extends 
GenericServlet {
 return true;
 }
 }
-}
 
 
-/*
- * A response wrapper for use in (dumb) "HEAD" support.
- * This just swallows that body, counting the bytes in order to set
- * the content length appropriately.  All other methods delegate to the
- * wrapped HTTP Servlet Response object.
- */
-// file private
-class NoBodyResponse extends HttpServletResponseWrapper {
-private final NoBodyOutputStream noBody;
-private PrintWriter writer;
-private boolean didSetContentLength;
-
-// file private
-NoBodyResponse(HttpServletResponse r) {
-super(r);
-noBody = new NoBodyOutputStream(this);
-}
+/*
+ * A response wrapper for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately.  All other methods delegate to the
+ * wrapped HTTP Servlet Response object.
+ */
+private static class NoBodyResponse extends HttpServletResponseWrapper {
+private final NoBodyOutputStream noBody;
+private PrintWriter writer;
+private boolean didSetContentLength;
+
+private NoBodyResponse(HttpServletResponse r) {
+super(r);
+noBody = new NoBodyOutputStream(this);
+}
 
-// file private
-void setContentLength() {
-if (!didSetContentLength) {
-if (writer != null) {
-writer.flush();
+private void setContentLength() {
+if (!didSetContentLength) {
+if (writer != null) {
+writer.flush();
+}
+super.setContentLength(noBody.getContentLength());
 }
-super.setContentLength(noBody.getContentLength());
 }
-}
 
 
-// SERVLET RESPONSE interface methods
-
-@Override
-public void setContentLength(int len) {
-super.setContentLength(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLength(int len) {
+super.setContentLength(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setContentLengthLong(long len) {
-super.setContentLengthLong(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLengthLong(long len) {
+super.setContentLengthLong(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setHeader(String name, String value) {
-super.setHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setHeader(String name, String value) {
+super.setHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addHeader(String name, String value) {
-super.addHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addHeader(String name, String value) {
+super.addHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void setIntHeader(String name, int value) {
-super.setIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setIntHeader(String name, int value) {
+super.setIntHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addIntHeader(String name, int value) {
-super.addIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addIntHeader(String name, int value) {
+super.addIntHeader(name, value);
+checkHeader(name);
+}
 
-private void checkHeader(String name) {
-if ("content-

[tomcat] branch 9.0.x updated: No need for these internal classes to be package visible.

2021-06-03 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 8eb557e  No need for these internal classes to be package visible.
8eb557e is described below

commit 8eb557efc3d76bfc2670a652999c4cb093631b80
Author: Mark Thomas 
AuthorDate: Thu Jun 3 17:41:53 2021 +0100

No need for these internal classes to be package visible.

While the (removed in this commit) comments indicate that
NoBodyOutputStream and NoBodyResponse were intended to be private to
HttpServlet, there were implemented as package private. Refactor so they
are private to HttpServlet.
---
 java/javax/servlet/http/HttpServlet.java | 245 +++
 1 file changed, 118 insertions(+), 127 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 1b252a2..16c346d 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -756,167 +756,158 @@ public abstract class HttpServlet extends 
GenericServlet {
 }
 service(request, response);
 }
-}
 
 
-/*
- * A response wrapper for use in (dumb) "HEAD" support.
- * This just swallows that body, counting the bytes in order to set
- * the content length appropriately.  All other methods delegate to the
- * wrapped HTTP Servlet Response object.
- */
-// file private
-class NoBodyResponse extends HttpServletResponseWrapper {
-private final NoBodyOutputStream noBody;
-private PrintWriter writer;
-private boolean didSetContentLength;
-
-// file private
-NoBodyResponse(HttpServletResponse r) {
-super(r);
-noBody = new NoBodyOutputStream(this);
-}
+/*
+ * A response wrapper for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately.  All other methods delegate to the
+ * wrapped HTTP Servlet Response object.
+ */
+private static class NoBodyResponse extends HttpServletResponseWrapper {
+private final NoBodyOutputStream noBody;
+private PrintWriter writer;
+private boolean didSetContentLength;
+
+private NoBodyResponse(HttpServletResponse r) {
+super(r);
+noBody = new NoBodyOutputStream(this);
+}
 
-// file private
-void setContentLength() {
-if (!didSetContentLength) {
-if (writer != null) {
-writer.flush();
+private void setContentLength() {
+if (!didSetContentLength) {
+if (writer != null) {
+writer.flush();
+}
+super.setContentLength(noBody.getContentLength());
 }
-super.setContentLength(noBody.getContentLength());
 }
-}
 
 
-// SERVLET RESPONSE interface methods
-
-@Override
-public void setContentLength(int len) {
-super.setContentLength(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLength(int len) {
+super.setContentLength(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setContentLengthLong(long len) {
-super.setContentLengthLong(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLengthLong(long len) {
+super.setContentLengthLong(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setHeader(String name, String value) {
-super.setHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setHeader(String name, String value) {
+super.setHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addHeader(String name, String value) {
-super.addHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addHeader(String name, String value) {
+super.addHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void setIntHeader(String name, int value) {
-super.setIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setIntHeader(String name, int value) {
+super.setIntHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addIntHeader(String name, int value) {
-super.addIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addIntHeader(String name, int value) {
+super.addIntHeader(name, value);
+checkHeader(name);
+}
 
-private void checkHeader(String name) {
-if ("content

[tomcat] branch 8.5.x updated: No need for these internal classes to be package visible.

2021-06-03 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 b94f034  No need for these internal classes to be package visible.
b94f034 is described below

commit b94f03444aef0a4de40203311837be31bbebcfd9
Author: Mark Thomas 
AuthorDate: Thu Jun 3 17:41:53 2021 +0100

No need for these internal classes to be package visible.

While the (removed in this commit) comments indicate that
NoBodyOutputStream and NoBodyResponse were intended to be private to
HttpServlet, there were implemented as package private. Refactor so they
are private to HttpServlet.
---
 java/javax/servlet/http/HttpServlet.java | 245 +++
 1 file changed, 118 insertions(+), 127 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 1b252a2..16c346d 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -756,167 +756,158 @@ public abstract class HttpServlet extends 
GenericServlet {
 }
 service(request, response);
 }
-}
 
 
-/*
- * A response wrapper for use in (dumb) "HEAD" support.
- * This just swallows that body, counting the bytes in order to set
- * the content length appropriately.  All other methods delegate to the
- * wrapped HTTP Servlet Response object.
- */
-// file private
-class NoBodyResponse extends HttpServletResponseWrapper {
-private final NoBodyOutputStream noBody;
-private PrintWriter writer;
-private boolean didSetContentLength;
-
-// file private
-NoBodyResponse(HttpServletResponse r) {
-super(r);
-noBody = new NoBodyOutputStream(this);
-}
+/*
+ * A response wrapper for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately.  All other methods delegate to the
+ * wrapped HTTP Servlet Response object.
+ */
+private static class NoBodyResponse extends HttpServletResponseWrapper {
+private final NoBodyOutputStream noBody;
+private PrintWriter writer;
+private boolean didSetContentLength;
+
+private NoBodyResponse(HttpServletResponse r) {
+super(r);
+noBody = new NoBodyOutputStream(this);
+}
 
-// file private
-void setContentLength() {
-if (!didSetContentLength) {
-if (writer != null) {
-writer.flush();
+private void setContentLength() {
+if (!didSetContentLength) {
+if (writer != null) {
+writer.flush();
+}
+super.setContentLength(noBody.getContentLength());
 }
-super.setContentLength(noBody.getContentLength());
 }
-}
 
 
-// SERVLET RESPONSE interface methods
-
-@Override
-public void setContentLength(int len) {
-super.setContentLength(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLength(int len) {
+super.setContentLength(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setContentLengthLong(long len) {
-super.setContentLengthLong(len);
-didSetContentLength = true;
-}
+@Override
+public void setContentLengthLong(long len) {
+super.setContentLengthLong(len);
+didSetContentLength = true;
+}
 
-@Override
-public void setHeader(String name, String value) {
-super.setHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setHeader(String name, String value) {
+super.setHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addHeader(String name, String value) {
-super.addHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addHeader(String name, String value) {
+super.addHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void setIntHeader(String name, int value) {
-super.setIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void setIntHeader(String name, int value) {
+super.setIntHeader(name, value);
+checkHeader(name);
+}
 
-@Override
-public void addIntHeader(String name, int value) {
-super.addIntHeader(name, value);
-checkHeader(name);
-}
+@Override
+public void addIntHeader(String name, int value) {
+super.addIntHeader(name, value);
+checkHeader(name);
+}
 
-private void checkHeader(String name) {
-if ("content

HttpServlet

2021-06-03 Thread Mark Thomas

Hi all,

If you are wondering about my recent interest in HttpServlet, a 
discussion in the Jakarta Servlet project [1] got me looking more 
closely at our own doHead() implementation.


Given the common ancestry, it won't be surprising that we have some of 
the same issues. So far, I have:


- don't handle reset() or resetBuffer()
- use int rather than long for content-length
- flush after bufferSize bytes rather than bufferSize + 1 bytes

This last one looks to be Tomcat specific. The current code works and I 
am extremely wary of introducing an off-by-one error into the HTTP 
output buffer therefore I'm almost certainly going to wait until after 
the current release round to fix that issue.


I have a parameterised unit test that creates a few thousand individual 
tests that has a fair number of failures right now. If I get that test 
passing in time, and the fixes are limited to the doHead() method, then 
I may commit those fixes in time for the next set of releases.


Mark

[1] https://github.com/eclipse-ee4j/servlet-api/pull/356

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



buildbot failure in on tomcat-8.5.x

2021-06-03 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-8.5.x while building 
tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-8.5.x/builds/13

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: asf946_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-8.5-commit' 
triggered this build
Build Source Stamp: [branch 8.5.x] b94f03444aef0a4de40203311837be31bbebcfd9
Blamelist: Mark Thomas ,remm 

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




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



Re: Apache Tomcat 10.0.2: generated _jsp.class file has empty local variable table

2021-06-03 Thread Pietro Braione
> Il giorno 31 mag 2021, alle ore 20:58, Konstantin Kolinko 
>  ha scritto:
> 
> Citing from the NOTICE file:
> 
> Java compilation software for JSP pages is provided by the Eclipse
> JDT Core Batch Compiler component, which is open source software.

Hello Konstantin, and thank you for the answer. I noticed the ecj jar in the 
lib directory so I kind of guessed that ecj was used as a compiler. What I am 
looking for is the Tomcat code that invokes ecj, so I can get the exact ecj 
invocation parameters and reproduce from the command line what Tomcat does. I 
also conjecture that, after compilation of the .java file, some kind of 
bytecode manipulation is performed on the resulting class file, e.g., to inject 
JSP-specific debug information as SourceDebugExtension attributes. So I want to 
read the code and see whether this is true, in the case I need to pinpoint 
whether the problem is in ecj or in the (possible) subsequent bytecode 
manipulation routines.
Best,
Pietro
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[tomcat] branch main updated: Fix long content-length handling for doHead()

2021-06-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 fefe4de  Fix long content-length handling for doHead()
fefe4de is described below

commit fefe4de781449493000a633488aa11198434cf3e
Author: Mark Thomas 
AuthorDate: Thu Jun 3 18:57:02 2021 +0100

Fix long content-length handling for doHead()
---
 java/jakarta/servlet/http/HttpServlet.java | 6 +++---
 webapps/docs/changelog.xml | 6 ++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 77e8c62..86a5a7b 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -823,7 +823,7 @@ public abstract class HttpServlet extends GenericServlet {
 if (writer != null) {
 writer.flush();
 }
-super.setContentLength(noBody.getContentLength());
+super.setContentLengthLong(noBody.getContentLength());
 }
 }
 
@@ -899,13 +899,13 @@ public abstract class HttpServlet extends GenericServlet {
 
 private final HttpServletResponse response;
 private boolean flushed = false;
-private int contentLength = 0;
+private long contentLength = 0;
 
 private NoBodyOutputStream(HttpServletResponse response) {
 this.response = response;
 }
 
-private int getContentLength() {
+private long getContentLength() {
 return contentLength;
 }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f56b524..cd79722 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -164,6 +164,12 @@
 Refactor principal handling in UserDatabaseRealm using
 an inner class that extends GenericPrincipal. (remm)
   
+  
+Enable the default doHead()) implementation in
+HttpServlet to correctly handle responses where the 
content
+length needs to be represented as a long since it is larger than the
+maximum value that can be represented by an int. (markt)
+  
 
   
   

-
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: Fix long content-length handling for doHead()

2021-06-03 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 6defa8b  Fix long content-length handling for doHead()
6defa8b is described below

commit 6defa8be6908110a0f78126c55ccb3a9b1a7ce63
Author: Mark Thomas 
AuthorDate: Thu Jun 3 18:57:02 2021 +0100

Fix long content-length handling for doHead()
---
 java/jakarta/servlet/http/HttpServlet.java | 6 +++---
 webapps/docs/changelog.xml | 6 ++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java 
b/java/jakarta/servlet/http/HttpServlet.java
index 77e8c62..86a5a7b 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -823,7 +823,7 @@ public abstract class HttpServlet extends GenericServlet {
 if (writer != null) {
 writer.flush();
 }
-super.setContentLength(noBody.getContentLength());
+super.setContentLengthLong(noBody.getContentLength());
 }
 }
 
@@ -899,13 +899,13 @@ public abstract class HttpServlet extends GenericServlet {
 
 private final HttpServletResponse response;
 private boolean flushed = false;
-private int contentLength = 0;
+private long contentLength = 0;
 
 private NoBodyOutputStream(HttpServletResponse response) {
 this.response = response;
 }
 
-private int getContentLength() {
+private long getContentLength() {
 return contentLength;
 }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index e25ae94..07f3e5b 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -143,6 +143,12 @@
 Refactor principal handling in UserDatabaseRealm using
 an inner class that extends GenericPrincipal. (remm)
   
+  
+Enable the default doHead()) implementation in
+HttpServlet to correctly handle responses where the 
content
+length needs to be represented as a long since it is larger than the
+maximum value that can be represented by an int. (markt)
+  
 
   
   

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



[tomcat] branch 9.0.x updated: Fix long content-length handling for doHead()

2021-06-03 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 92b8be7  Fix long content-length handling for doHead()
92b8be7 is described below

commit 92b8be7031ff23a47d4b22e1a6b8bbe7c962fb9d
Author: Mark Thomas 
AuthorDate: Thu Jun 3 18:57:02 2021 +0100

Fix long content-length handling for doHead()
---
 java/javax/servlet/http/HttpServlet.java | 6 +++---
 webapps/docs/changelog.xml   | 6 ++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 16c346d..3b5b6ad 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -779,7 +779,7 @@ public abstract class HttpServlet extends GenericServlet {
 if (writer != null) {
 writer.flush();
 }
-super.setContentLength(noBody.getContentLength());
+super.setContentLengthLong(noBody.getContentLength());
 }
 }
 
@@ -855,13 +855,13 @@ public abstract class HttpServlet extends GenericServlet {
 
 private final HttpServletResponse response;
 private boolean flushed = false;
-private int contentLength = 0;
+private long contentLength = 0;
 
 private NoBodyOutputStream(HttpServletResponse response) {
 this.response = response;
 }
 
-private int getContentLength() {
+private long getContentLength() {
 return contentLength;
 }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index b2074d0..9c525d6 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -152,6 +152,12 @@
 Refactor principal handling in UserDatabaseRealm using
 an inner class that extends GenericPrincipal. (remm)
   
+  
+Enable the default doHead()) implementation in
+HttpServlet to correctly handle responses where the 
content
+length needs to be represented as a long since it is larger than the
+maximum value that can be represented by an int. (markt)
+  
 
   
   

-
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: Fix long content-length handling for doHead()

2021-06-03 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 939d6cc  Fix long content-length handling for doHead()
939d6cc is described below

commit 939d6cc6bfe32add6b3da45536b86603efa790bf
Author: Mark Thomas 
AuthorDate: Thu Jun 3 18:57:02 2021 +0100

Fix long content-length handling for doHead()
---
 java/javax/servlet/http/HttpServlet.java | 6 +++---
 webapps/docs/changelog.xml   | 6 ++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 16c346d..3b5b6ad 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -779,7 +779,7 @@ public abstract class HttpServlet extends GenericServlet {
 if (writer != null) {
 writer.flush();
 }
-super.setContentLength(noBody.getContentLength());
+super.setContentLengthLong(noBody.getContentLength());
 }
 }
 
@@ -855,13 +855,13 @@ public abstract class HttpServlet extends GenericServlet {
 
 private final HttpServletResponse response;
 private boolean flushed = false;
-private int contentLength = 0;
+private long contentLength = 0;
 
 private NoBodyOutputStream(HttpServletResponse response) {
 this.response = response;
 }
 
-private int getContentLength() {
+private long getContentLength() {
 return contentLength;
 }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 8be9dfb..e2b2aae 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -152,6 +152,12 @@
 Refactor principal handling in UserDatabaseRealm using
 an inner class that extends GenericPrincipal. (remm)
   
+  
+Enable the default doHead()) implementation in
+HttpServlet to correctly handle responses where the 
content
+length needs to be represented as a long since it is larger than the
+maximum value that can be represented by an int. (markt)
+  
 
   
   

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



Re: Apache Tomcat 10.0.2: generated _jsp.class file has empty local variable table

2021-06-03 Thread Mark Thomas

On 03/06/2021 18:56, Pietro Braione wrote:

Il giorno 31 mag 2021, alle ore 20:58, Konstantin Kolinko 
 ha scritto:

Citing from the NOTICE file:

Java compilation software for JSP pages is provided by the Eclipse
JDT Core Batch Compiler component, which is open source software.


Hello Konstantin, and thank you for the answer. I noticed the ecj jar in the 
lib directory so I kind of guessed that ecj was used as a compiler. What I am 
looking for is the Tomcat code that invokes ecj, so I can get the exact ecj 
invocation parameters and reproduce from the command line what Tomcat does. I 
also conjecture that, after compilation of the .java file, some kind of 
bytecode manipulation is performed on the resulting class file, e.g., to inject 
JSP-specific debug information as SourceDebugExtension attributes. So I want to 
read the code and see whether this is true, in the case I need to pinpoint 
whether the problem is in ecj or in the (possible) subsequent bytecode 
manipulation routines.


Have you tried searching the Tomcat source code for references to "jdt"?

Github provides a handy on-line search so you don't even need to clone 
the repo.


Mark

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



svn commit: r1890440 - in /tomcat/site/trunk: docs/ci.html xdocs/ci.xml

2021-06-03 Thread markt
Author: markt
Date: Thu Jun  3 18:13:43 2021
New Revision: 1890440

URL: http://svn.apache.org/viewvc?rev=1890440&view=rev
Log:
CI switchover complete

Modified:
tomcat/site/trunk/docs/ci.html
tomcat/site/trunk/xdocs/ci.xml

Modified: tomcat/site/trunk/docs/ci.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/ci.html?rev=1890440&r1=1890439&r2=1890440&view=diff
==
--- tomcat/site/trunk/docs/ci.html (original)
+++ tomcat/site/trunk/docs/ci.html Thu Jun  3 18:13:43 2021
@@ -27,11 +27,11 @@ currently developed not yet released ver
 prepared and published by ASF Buildbot, using the latest source code.
 
 
-  https://ci.apache.org/projects/tomcat/tomcat10/docs/index.html"; 
rel="nofollow">Tomcat 10.1.x (main)
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/docs/index.html"; 
rel="nofollow">Tomcat 10.1.x (main)
   https://ci.apache.org/projects/tomcat/tomcat-10.0.x/docs/index.html"; 
rel="nofollow">Tomcat 10.0.x
-  https://ci.apache.org/projects/tomcat/tomcat9/docs/index.html"; 
rel="nofollow">Tomcat 9.0.x
+  https://ci.apache.org/projects/tomcat/tomcat-9.0.x/docs/index.html"; 
rel="nofollow">Tomcat 9.0.x
   https://ci.apache.org/projects/tomcat/tomcat-8.5.x/docs/index.html"; 
rel="nofollow">Tomcat 8.5.x
-  https://ci.apache.org/projects/tomcat/tomcat7/docs/index.html"; 
rel="nofollow">Tomcat 7.0.x
+  https://ci.apache.org/projects/tomcat/tomcat-7.0.x/docs/index.html"; 
rel="nofollow">Tomcat 7.0.x
 
 
 Build results
@@ -47,15 +47,15 @@ prepared and published by ASF Buildbot,
   
 
   Source path: https://github.com/apache/tomcat";>https://github.com/apache/tomcat
-  https://ci.apache.org/builders/tomcat-trunk";>Build status 
page for tomcat-trunkThis builder is triggered after 
each commit. It does a release build and runs tests (using multiple parallel 
threads).
-  https://ci.apache.org/builders/tomcat-trunk-periodic";>Build 
status page for tomcat-trunk-periodicThis builder is 
triggered once a day. It runs tests serially and generates a coverage 
report.
-  https://ci.apache.org/projects/tomcat/tomcat10/"; 
rel="nofollow">Published files:
+  https://ci.apache.org/builders/tomcat-10.1.x";>Build status 
page for tomcat-trunkThis builder is triggered after 
each commit. It does a release build and runs tests (using multiple parallel 
threads).
+  https://ci.apache.org/builders/tomcat-10.1.x-periodic";>Build status 
page for tomcat-trunk-periodicThis builder is 
triggered once a day. It runs tests serially and generates a coverage 
report.
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/"; 
rel="nofollow">Published files:
 
-  https://ci.apache.org/projects/tomcat/tomcat10/docs/index.html"; 
rel="nofollow">Documentation
-  https://ci.apache.org/projects/tomcat/tomcat10/logs/"; 
rel="nofollow">JUnit logs
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/docs/index.html"; 
rel="nofollow">Documentation
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/logs/"; 
rel="nofollow">JUnit logs
by revision number. The recent ones are at the bottom.
-  https://ci.apache.org/projects/tomcat/tomcat10/coverage/"; 
rel="nofollow">Coverage report
-  https://ci.apache.org/projects/tomcat/tomcat10/rat-output.html"; 
rel="nofollow">RAT report
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/coverage/"; 
rel="nofollow">Coverage report
+  https://ci.apache.org/projects/tomcat/tomcat-10.1.x/rat-output.html"; 
rel="nofollow">RAT report
 
   
 
@@ -85,15 +85,15 @@ prepared and published by ASF Buildbot,
   
 
   Source path: https://github.com/apache/tomcat/tree/9.0.x";>https://github.com/apache/tomcat/tree/9.0.x
-  https://ci.apache.org/builders/tomcat-9-trunk";>Build status 
page for tomcat-9-trunkThis builder is triggered after 
each commit. It does a release build and runs tests (using multiple parallel 
threads).
-  https://ci.apache.org/builders/tomcat-9-periodic";>Build 
status page for tomcat-9-trunk-periodicThis builder is 
triggered once a day. It runs tests serially and generates a coverage 
report.
-  https://ci.apache.org/projects/tomcat/tomcat9/"; 
rel="nofollow">Published files:
+  https://ci.apache.org/builders/tomcat-9.0.x";>Build status 
page for tomcat-9-trunkThis builder is triggered after 
each commit. It does a release build and runs tests (using multiple parallel 
threads).
+  https://ci.apache.org/builders/tomcat-9.0.x-periodic";>Build 
status page for tomcat-9-trunk-periodicThis builder is 
triggered once a day. It runs tests serially and generates a coverage 
report.
+  https://ci.apache.org/projects/tomcat/tomcat-9.0.x/"; 
rel="nofollow">Published files:
 
-  https://ci.apache.org/projects/tomcat/tomcat9/docs/index.html"; 
rel="nofollow">Documentation
-  https://ci.apache.org/projects/tomcat/tomcat9/log

buildbot failure in on tomcat-9.0.x

2021-06-03 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-9.0.x while building 
tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-9.0.x/builds/10

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: asf946_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-9.0-commit' 
triggered this build
Build Source Stamp: [branch 9.0.x] 8eb557efc3d76bfc2670a652999c4cb093631b80
Blamelist: Mark Thomas 

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




-
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: Correctly handle inner classes (and fix failing test)

2021-06-03 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 29b7edf  Correctly handle inner classes (and fix failing test)
29b7edf is described below

commit 29b7edffe423755b003c81a87b702bd0b2d880de
Author: Mark Thomas 
AuthorDate: Mon Feb 17 16:41:05 2020 +

Correctly handle inner classes (and fix failing test)
---
 test/javax/el/TestImportHandlerStandardPackages.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/javax/el/TestImportHandlerStandardPackages.java 
b/test/javax/el/TestImportHandlerStandardPackages.java
index 660f665..bf7e2d8 100644
--- a/test/javax/el/TestImportHandlerStandardPackages.java
+++ b/test/javax/el/TestImportHandlerStandardPackages.java
@@ -125,7 +125,7 @@ public class TestImportHandlerStandardPackages {
 // Skip directories
 continue;
 }
-Class clazz = Class.forName(packageName + "." + name);
+Class clazz = Class.forName(packageName + "." + 
name.replaceAll("\\.", "\\$"));
 if (!Modifier.isPublic(clazz.getModifiers())) {
 // Skip non-public classes
 continue;

-
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: Correctly handle inner classes (and fix failing test)

2021-06-03 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 0c6247b  Correctly handle inner classes (and fix failing test)
0c6247b is described below

commit 0c6247b6bd1fe91b820f9420433f29b22ef8bd07
Author: Mark Thomas 
AuthorDate: Mon Feb 17 16:41:05 2020 +

Correctly handle inner classes (and fix failing test)
---
 test/javax/el/TestImportHandlerStandardPackages.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/javax/el/TestImportHandlerStandardPackages.java 
b/test/javax/el/TestImportHandlerStandardPackages.java
index 30b0886..2f40de8 100644
--- a/test/javax/el/TestImportHandlerStandardPackages.java
+++ b/test/javax/el/TestImportHandlerStandardPackages.java
@@ -132,7 +132,7 @@ public class TestImportHandlerStandardPackages {
 // Skip directories
 continue;
 }
-Class clazz = Class.forName(packageName + "." + name);
+Class clazz = Class.forName(packageName + "." + 
name.replaceAll("\\.", "\\$"));
 if (!Modifier.isPublic(clazz.getModifiers())) {
 // Skip non-public classes
 continue;

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



buildbot success in on tomcat-9.0.x

2021-06-03 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-9.0.x while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-9.0.x/builds/12

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: asf946_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-9.0-commit' 
triggered this build
Build Source Stamp: [branch 9.0.x] 29b7edffe423755b003c81a87b702bd0b2d880de
Blamelist: Mark Thomas 

Build succeeded!

Sincerely,
 -The Buildbot




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