Re: [tomcat] branch 9.0.x updated: Additional fixes for 66076

2022-05-25 Thread Rémy Maucherat
On Tue, May 24, 2022 at 6:46 PM  wrote:
>
> 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 680db4448d Additional fixes for 66076
> 680db4448d is described below
>
> commit 680db4448d392752fb57b91639e7ab34a3f58105
> Author: Mark Thomas 
> AuthorDate: Tue May 24 17:46:20 2022 +0100
>
> Additional fixes for 66076
>
> The vectored IO version of the fix.
> ---
>  java/org/apache/tomcat/util/net/AprEndpoint.java  |  7 +++
>  java/org/apache/tomcat/util/net/Nio2Endpoint.java |  7 +++
>  java/org/apache/tomcat/util/net/NioEndpoint.java  | 19 
> ---
>  .../org/apache/tomcat/util/net/SocketWrapperBase.java |  4 +++-
>  4 files changed, 29 insertions(+), 8 deletions(-)
>
> diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java 
> b/java/org/apache/tomcat/util/net/AprEndpoint.java
> index c02e90fc09..20d10efa11 100644
> --- a/java/org/apache/tomcat/util/net/AprEndpoint.java
> +++ b/java/org/apache/tomcat/util/net/AprEndpoint.java
> @@ -2813,6 +2813,13 @@ public class AprEndpoint extends 
> AbstractEndpoint implements SNICallB
>  return inline;
>  }
>
> +@Override
> +protected boolean hasOutboundRemaining() {
> +// NIO2 never has remaining outbound data when the completion
> +// handler is called
> +return false;
> +}
> +
>  @Override
>  public void run() {
>  // Perform the IO operation
> diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java 
> b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
> index 49ee411016..c5b9a395f5 100644
> --- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
> +++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
> @@ -1021,6 +1021,13 @@ public class Nio2Endpoint extends 
> AbstractJsseEndpoint  return Nio2Endpoint.isInline();
>  }
>
> +@Override
> +protected boolean hasOutboundRemaining() {
> +// NIO2 never has remaining outbound data when the completion
> +// handler is called
> +return false;
> +}
> +
>  @Override
>  protected void start() {
>  if (read) {
> diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java 
> b/java/org/apache/tomcat/util/net/NioEndpoint.java
> index b8b6d4339d..ea65dd6600 100644
> --- a/java/org/apache/tomcat/util/net/NioEndpoint.java
> +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
> @@ -1622,6 +1622,11 @@ public class NioEndpoint extends 
> AbstractJsseEndpoint
>  return inline;
>  }
>
> +@Override
> +protected boolean hasOutboundRemaining() {
> +return getSocket().getOutboundRemaining() > 0;
> +}
> +
>  @Override
>  public void run() {
>  // Perform the IO operation
> @@ -1654,13 +1659,13 @@ public class NioEndpoint extends 
> AbstractJsseEndpoint
>  } else {
>  boolean doWrite = true;
>  // Write from main buffer first
> -if 
> (!socketBufferHandler.isWriteBufferEmpty()) {
> +if (socketOrNetworkBufferHasDataLeft()) {
>  // There is still data inside the main 
> write buffer, it needs to be written first
>  
> socketBufferHandler.configureWriteBufferForRead();
>  do {
>  nBytes = 
> getSocket().write(socketBufferHandler.getWriteBuffer());
> -} while 
> (!socketBufferHandler.isWriteBufferEmpty() && nBytes > 0);
> -if 
> (!socketBufferHandler.isWriteBufferEmpty()) {
> +} while 
> (socketOrNetworkBufferHasDataLeft() && nBytes > 0);
> +if (socketOrNetworkBufferHasDataLeft()) {
>  doWrite = false;
>  }
>  // Preserve a negative value since it is 
> an error
> @@ -1681,7 +1686,8 @@ public class NioEndpoint extends 
> AbstractJsseEndpoint
>  updateLastWrite();
>  }
>  }
> -if (nBytes != 0 || 
> !buffersArrayHasRemaining(buffers, offset, length)) {
> +if (nBytes != 0 || 
> (!buffersArrayHasRemaining(buffers, offset, length) &&
> +!s

[Bug 66088] New: "MaxDays" property in "logging,properties" file in /Conf directory is not working

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

Bug ID: 66088
   Summary: "MaxDays" property in "logging,properties" file in
/Conf directory is not working
   Product: Tomcat 8
   Version: 8.5.23
  Hardware: PC
Status: NEW
  Severity: critical
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: jasdeep.dhil...@toronto.ca
  Target Milestone: 

Created attachment 38305
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=38305&action=edit
ApacheTomcatVersion

Hi,

We have Tomcat 8.5.23 installed in our Production environment. Catalina log
files are getting generated without any purge interval. I tried to put the
"MaxDays" property in "logging,properties" file in /Conf directory but it
didn't worked (even after restarting Tomcat services twice).

I have added the following lines

1catalina.org.apache.juli.AsyncFileHandler.maxDays

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory =
${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90

-- 
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 66088] "MaxDays" property in "logging,properties" file in /Conf directory is not working

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

Konstantin Kolinko  changed:

   What|Removed |Added

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

--- Comment #1 from Konstantin Kolinko  ---
1. See the changelog. That feature was implemented in Tomcat 8.5.30.

2. Bugzilla is NOT the place to ask support questions. It is a bug database.

-- 
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 66089] New: Tomcat 9.0.63 won't start when used with a SSL certificate containing a RSA Private Key

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

Bug ID: 66089
   Summary: Tomcat 9.0.63 won't start when used with a SSL
certificate containing a RSA Private Key
   Product: Tomcat 9
   Version: 9.0.63
  Hardware: All
OS: All
Status: NEW
  Severity: blocker
  Priority: P2
 Component: Util
  Assignee: dev@tomcat.apache.org
  Reporter: d...@mitre.org
  Target Milestone: -

Our tomcat 9 server has an existing SSL certificate (Entrust CA) which contains
a RSA Private Key. This SSL certificate worked fine when run with Tomcat 9.0.62
but won't work when Tomcat 9.0.63 is installed. I show the stack trace at the
end of this message.

Note that this only happens when starting the service with a SSL certificate
that contains a RSA Private Key. We've tested on other tomcat servers that have
a SSL certificate that contains a Private Key, and in this case tomcat 9.0.63
starts up fine.

I compared Tomcat source 9.0.62 vs. 9.0.63 and it looks there is a bug in
org/apache/tomcat/util/net/jsse/PEMFile.java:

- in tomcat 9.0.62 in PEMFile.java, on line 132 case 'Part.RSA_PRIVATE_KEY',
  the private key is constructed with this statement:
privateKey = part.toPrivateKey(null, keyAlgorithm, Format.PKCS1);

- in tomcat 9.0.63 in PEMFile.java, on line 146 case Part.RSA_PRIVATE_KEY',
  the private key is constructed with this statement:
privateKey = part.toPrivateKey(password, keyAlgorithm, Format.PKCS1);

Since our RSA private key doesn't have a password, passing password=null is the
correct option.

Tomcat 9.0.63 stack trace when a SSL certificate with a RSA Private Key is
shown here:


16-May-2022 18:52:30.849 SEVERE [main]
org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to
initialize component [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Protocol handler initialization
failed
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1049)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:556)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1042)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:724)
at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
Caused by: java.lang.IllegalArgumentException: overrun, bytes = 924
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:107)
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
at
org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:234)
at
org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1227)
at
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1240)
at
org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:603)
at
org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1046)
... 13 more
Caused by: java.io.IOException: overrun, bytes = 924
at
javax.crypto.EncryptedPrivateKeyInfo.(EncryptedPrivateKeyInfo.java:95)
at
org.apache.tomcat.util.net.jsse.PEMFile$Part.toPrivateKey(PEMFile.java:204)
at
org.apache.tomcat.util.net.jsse.PEMFile.(PEMFile.java:146)
at
org.apache.tomcat.util.net.jsse.PEMFile.(PEMFile.java:98)
at
org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:316)
at
org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247)
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:105)
... 20 more

Tomcat build information is here:

16-May-2022 18:52:30.473 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server version

[Bug 66089] Tomcat 9.0.63 won't start when used with a SSL certificate containing a RSA Private Key

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

--- Comment #1 from Remy Maucherat  ---
This change was part of the PR, and I don't see any reason for it ...

-- 
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 66089] Tomcat 9.0.63 won't start when used with a SSL certificate containing a RSA Private Key

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

--- Comment #2 from jfclere  ---
I think the logic looks for something like:
-BEGIN RSA PRIVATE KEY-
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,E9F2FB791E9BAAEC7BEE71DA73CA35F3

4LBH2H34b4BW0C2v8VYkp8/MCWPmW7iJnuqvH103DxnFV+PBnXXeEjiUsqVEma1x

but not all the encrypted privated key have it:
BEGIN ENCRYPTED PRIVATE KEY-
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIgorSE4d41bECAggA

A quick work-around is to encrypt or reencrypt the key. something like:
openssl rsa -aes256 -in newkey.pem -out newkey.aes-256.pem

-- 
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 66076] Final block of encrypted response payload not being sent occasionally over TLS

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

--- Comment #16 from Phil Clay  ---
Good news!  The test has been running with no failures continuously since my
last comment.  I'll keep letting it run today.  But I'm pretty confident that
the problem is fixed since the test would normally fail after a few of hours.

-- 
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] 01/01: Fix BZ 66089

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

jfclere pushed a commit to branch jfclere-patch-1
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 0ca5bf9616891ac4fa6ce30cd17f323bdb5079a1
Author: Jean-Frederic Clere 
AuthorDate: Wed May 25 18:55:28 2022 +0200

Fix BZ 66089

Sorry encrypted RSA PRIVATE KEY need null password
---
 java/org/apache/tomcat/util/net/jsse/PEMFile.java | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/tomcat/util/net/jsse/PEMFile.java 
b/java/org/apache/tomcat/util/net/jsse/PEMFile.java
index 80c585d3b8..5397012b3f 100644
--- a/java/org/apache/tomcat/util/net/jsse/PEMFile.java
+++ b/java/org/apache/tomcat/util/net/jsse/PEMFile.java
@@ -143,7 +143,10 @@ public class PEMFile {
 privateKey = part.toPrivateKey(password, keyAlgorithm, 
Format.PKCS8);
 break;
 case Part.RSA_PRIVATE_KEY:
-privateKey = part.toPrivateKey(password, keyAlgorithm, 
Format.PKCS1);
+if (part.algorithm != null)
+privateKey = part.toPrivateKey(password, keyAlgorithm, 
Format.PKCS1);
+else
+privateKey = part.toPrivateKey(null, keyAlgorithm, 
Format.PKCS1);
 break;
 case Part.CERTIFICATE:
 case Part.X509_CERTIFICATE:


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



[GitHub] [tomcat] jfclere opened a new pull request, #517: Fix BZ 66089

2022-05-25 Thread GitBox


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

   Sorry encrypted RSA PRIVATE KEY need null password


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



[tomcat] branch jfclere-patch-1 created (now 0ca5bf9616)

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

jfclere pushed a change to branch jfclere-patch-1
in repository https://gitbox.apache.org/repos/asf/tomcat.git


  at 0ca5bf9616 Fix BZ 66089

This branch includes the following new commits:

 new 0ca5bf9616 Fix BZ 66089

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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



[Bug 66089] Tomcat 9.0.63 won't start when used with a SSL certificate containing a RSA Private Key

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

--- Comment #3 from jfclere  ---
https://github.com/apache/tomcat/pull/517 should fix the problem.

-- 
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] michael-o commented on pull request #517: Fix BZ 66089

2022-05-25 Thread GitBox


michael-o commented on PR #517:
URL: https://github.com/apache/tomcat/pull/517#issuecomment-1137758112

   For god's sake don't let @rmaucher see that you have created a branch. YOU 
HAVE INVENTED FIRE.


-- 
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] rmaucher commented on pull request #517: Fix BZ 66089

2022-05-25 Thread GitBox


rmaucher commented on PR #517:
URL: https://github.com/apache/tomcat/pull/517#issuecomment-1137858538

   Indeed creating the branch (or doing a PR) was not useful at all in this 
case, thanks for pointing it out.


-- 
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-training] dependabot[bot] opened a new pull request, #6: Bump grunt from 1.0.2 to 1.5.3

2022-05-25 Thread GitBox


dependabot[bot] opened a new pull request, #6:
URL: https://github.com/apache/tomcat-training/pull/6

   Bumps [grunt](https://github.com/gruntjs/grunt) from 1.0.2 to 1.5.3.
   
   Release notes
   Sourced from https://github.com/gruntjs/grunt/releases";>grunt's releases.
   
   v1.5.3
   
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1745";>#1745
 from gruntjs/fix-copy-op  572d79b
   Patch up race condition in symlink copying.  58016ff
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1746";>#1746
 from JamieSlome/patch-1  0749e1d
   Create SECURITY.md  69b7c50
   
   https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3";>https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3
   v1.5.2
   
   Update Changelog  7f15fd5
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1743";>#1743
 from gruntjs/cleanup-link  b0ec6e1
   Clean up link handling  433f91b
   
   https://github.com/gruntjs/grunt/compare/v1.5.1...v1.5.2";>https://github.com/gruntjs/grunt/compare/v1.5.1...v1.5.2
   v1.5.1
   
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1742";>#1742
 from gruntjs/update-symlink-test  ad22608
   Fix symlink test  0652305
   
   https://github.com/gruntjs/grunt/compare/v1.5.0...v1.5.1";>https://github.com/gruntjs/grunt/compare/v1.5.0...v1.5.1
   v1.5.0
   
   Updated changelog  b2b2c2b
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1740";>#1740
 from gruntjs/update-deps-22-10  3eda6ae
   Update testing matrix  47d32de
   More updates  2e9161c
   Remove console log  04b960e
   Update dependencies, tests...  aad3d45
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1736";>#1736
 from justlep/main  fdc7056
   support .cjs extension  e35fe54
   
   https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.0";>https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.0
   v1.4.1
   
   Update Changelog  e7625e5
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1731";>#1731
 from gruntjs/update-options  5d67e34
   Fix ci install  d13bf88
   Switch to Actions  08896ae
   Update grunt-known-options  eee0673
   Add note about a breaking change  1b6e288
   
   https://github.com/gruntjs/grunt/compare/v1.4.0...v1.4.1";>https://github.com/gruntjs/grunt/compare/v1.4.0...v1.4.1
   v1.4.0
   
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1728";>#1728
 from gruntjs/update-deps-changelog  63b2e89
   Update changelog and util dep  106ed17
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1727";>#1727
 from gruntjs/update-deps-apr  49de70b
   Update CLI and nodeunit  47cf8b6
   Merge pull request https://github-redirect.dependabot.com/gruntjs/grunt/issues/1722";>#1722
 from gruntjs/update-through  e86db1c
   Update deps  4952368
   
   
   
   ... (truncated)
   
   
   Changelog
   Sourced from https://github.com/gruntjs/grunt/blob/main/CHANGELOG";>grunt's 
changelog.
   
   v1.5.3
   date: 2022-04-23
   changes:
   - Patch up race condition in symlink copying.
   v1.5.2
   date: 2022-04-12
   changes:
   - Unlink symlinks when copy destination is a symlink.
   v1.5.1
   date: 2022-04-11
   changes:
   - Fixed symlink destination handling.
   v1.5.0
   date: 2022-04-10
   changes:
   - Updated dependencies.
   - Add symlink handling for copying files.
   v1.4.1
   date: 2021-05-24
   changes:
   - Fix --preload option to be a known option
   - Switch to GitHub Actions
   v1.4.0
   date: 2021-04-21
   changes:
   - Security fixes in production and dev dependencies
   - Liftup/Liftoff upgrade breaking change. Update your scripts to use 
--preload instead of --require. Ref: https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb";>https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb.
   v1.3.0
   date: 2020-08-18
   changes:
   - Switch to use safeLoad for loading YML files via 
file.readYAML.
   - Upgrade legacy-log to ~3.0.0.
   - Upgrade legacy-util to ~2.0.0.
   v1.2.1
   date: 2020-07-07
   changes:
   - Remove path-is-absolute dependency.
   (PR: https://github-redirect.dependabot.com/gruntjs/grunt/pull/1715";>gruntjs/grunt#1715)
   v1.2.0
   date: 2020-07-03
   changes:
   - Allow usage of grunt plugins that are located in any location that
   is visible to Node.js and NPM, instead of node_modules directly
   inside package that have a dev dependency to these plugins.
   (PR: https://github-redirect.dependabot.com/gruntjs/grunt/pull/1677";>gruntjs/grunt#1677)
   - Removed coffeescript from dependencies. To ease transition, if
   coffeescript is still around, Grunt will attempt to load it.
   If it is not, and the user loads a CoffeeScript file,
   Grunt will print a useful error indicating that the
   coffeescript package should be installed as a dev dependency.
   
   

[GitHub] [tomcat-training] dependabot[bot] closed pull request #4: Bump grunt from 1.0.2 to 1.5.2

2022-05-25 Thread GitBox


dependabot[bot] closed pull request #4: Bump grunt from 1.0.2 to 1.5.2
URL: https://github.com/apache/tomcat-training/pull/4


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



[tomcat-training] branch dependabot/npm_and_yarn/grunt-1.5.3 created (now ee2bd73)

2022-05-25 Thread github-bot
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch dependabot/npm_and_yarn/grunt-1.5.3
in repository https://gitbox.apache.org/repos/asf/tomcat-training.git


  at ee2bd73  Bump grunt from 1.0.2 to 1.5.3

No new revisions were added by this update.


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



[GitHub] [tomcat-training] dependabot[bot] commented on pull request #4: Bump grunt from 1.0.2 to 1.5.2

2022-05-25 Thread GitBox


dependabot[bot] commented on PR #4:
URL: https://github.com/apache/tomcat-training/pull/4#issuecomment-1137952872

   Superseded by #6.


-- 
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] jfclere commented on pull request #517: Fix BZ 66089

2022-05-25 Thread GitBox


jfclere commented on PR #517:
URL: https://github.com/apache/tomcat/pull/517#issuecomment-1138189852

   Actually the encrypted keys created by CA.pl can't be read by Tomcat. They 
need to be converted to PKCS 8 like:
   openssl pkcs8 -topk8 -in newkey.pem -out newkey.pkcs8.pem
   I though that worked in the past, am I wrong?


-- 
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: [tomcat] branch 9.0.x updated: Additional fixes for 66076

2022-05-25 Thread Mark Thomas

On 25/05/2022 10:07, Rémy Maucherat wrote:

On Tue, May 24, 2022 at 6:46 PM  wrote:


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 680db4448d Additional fixes for 66076
680db4448d is described below

commit 680db4448d392752fb57b91639e7ab34a3f58105
Author: Mark Thomas 
AuthorDate: Tue May 24 17:46:20 2022 +0100

 Additional fixes for 66076

 The vectored IO version of the fix.





diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
index bcb0119fc6..d95a31a15d 100644
--- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java
+++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
@@ -1036,6 +1036,8 @@ public abstract class SocketWrapperBase {
   */
  protected abstract boolean isInline();

+protected abstract boolean hasOutboundRemaining();
+
  /**
   * Process the operation using the connector executor.
   * @return true if the operation was accepted, false if the executor
@@ -1087,7 +1089,7 @@ public abstract class SocketWrapperBase {
  boolean completion = true;
  if (state.check != null) {
  CompletionHandlerCall call = 
state.check.callHandler(currentState, state.buffers, state.offset, 
state.length);
-if (call == CompletionHandlerCall.CONTINUE) {
+if (call == CompletionHandlerCall.CONTINUE || 
state.hasOutboundRemaining()) {


I understand why it's there (the operation will indeed seem complete
in that case, but it's not fully complete), but it needs to check
state.read then (looping a read operation will most likely not do
anything good; maybe it shouldn't happen, but it's a lot better to be
safe), so:
if (call == CompletionHandlerCall.CONTINUE || (!state.read &&
state.hasOutboundRemaining())) {

Overall the change is more convoluted than I expected, and I would
have messed it up without a test case.


Thanks for the review. I'd missed that case and I agree bad things would 
happen if state.hasOutboundRemaining() happened to be true while a read 
was completing.


Mark

-
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 (145a073f47 -> a56d50974d)

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

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


from 145a073f47 Fix indent
 new fc194b72d1 Only check state.hasOutboundRemaining() when writes 
complete.
 new a56d50974d Refactor to reduce code volume. Thanks to schultz.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/org/apache/tomcat/util/net/AprEndpoint.java   | 7 ---
 java/org/apache/tomcat/util/net/Nio2Endpoint.java  | 7 ---
 java/org/apache/tomcat/util/net/SocketWrapperBase.java | 9 +++--
 3 files changed, 7 insertions(+), 16 deletions(-)


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



[tomcat] 01/02: Only check state.hasOutboundRemaining() when writes complete.

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

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

commit fc194b72d1df42494c34cbc0937a42ad56559148
Author: Mark Thomas 
AuthorDate: Thu May 26 07:34:58 2022 +0100

Only check state.hasOutboundRemaining() when writes complete.

Review from remm
---
 java/org/apache/tomcat/util/net/SocketWrapperBase.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
index d95a31a15d..ecfc0b7aff 100644
--- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java
+++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
@@ -1089,7 +1089,7 @@ public abstract class SocketWrapperBase {
 boolean completion = true;
 if (state.check != null) {
 CompletionHandlerCall call = 
state.check.callHandler(currentState, state.buffers, state.offset, 
state.length);
-if (call == CompletionHandlerCall.CONTINUE || 
state.hasOutboundRemaining()) {
+if (call == CompletionHandlerCall.CONTINUE || (!state.read 
&& state.hasOutboundRemaining())) {
 complete = false;
 } else if (call == CompletionHandlerCall.NONE) {
 completion = false;


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



[tomcat] 02/02: Refactor to reduce code volume. Thanks to schultz.

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

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

commit a56d50974d6cd6af019e09c0f260e76bc0b341b7
Author: Mark Thomas 
AuthorDate: Thu May 26 07:37:42 2022 +0100

Refactor to reduce code volume. Thanks to schultz.
---
 java/org/apache/tomcat/util/net/AprEndpoint.java   | 7 ---
 java/org/apache/tomcat/util/net/Nio2Endpoint.java  | 7 ---
 java/org/apache/tomcat/util/net/SocketWrapperBase.java | 7 ++-
 3 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java 
b/java/org/apache/tomcat/util/net/AprEndpoint.java
index 20d10efa11..c02e90fc09 100644
--- a/java/org/apache/tomcat/util/net/AprEndpoint.java
+++ b/java/org/apache/tomcat/util/net/AprEndpoint.java
@@ -2813,13 +2813,6 @@ public class AprEndpoint extends 
AbstractEndpoint implements SNICallB
 return inline;
 }
 
-@Override
-protected boolean hasOutboundRemaining() {
-// NIO2 never has remaining outbound data when the completion
-// handler is called
-return false;
-}
-
 @Override
 public void run() {
 // Perform the IO operation
diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java 
b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
index c5b9a395f5..49ee411016 100644
--- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
+++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
@@ -1021,13 +1021,6 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
  */
 protected abstract boolean isInline();
 
-protected abstract boolean hasOutboundRemaining();
+protected boolean hasOutboundRemaining() {
+// NIO2 and APR never have remaining outbound data when the
+// completion handler is called. NIO needs to override this.
+return false;
+}
+
 
 /**
  * Process the operation using the connector executor.


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



[tomcat] branch main updated: Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

2022-05-25 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 4334622e08 Fix BZ 66076. Non-blocking flush with TLS+NIO must flush 
network buffer
4334622e08 is described below

commit 4334622e087468184eef7b520ac5d8e631be2c21
Author: Mark Thomas 
AuthorDate: Mon May 23 10:17:02 2022 +0100

Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
---
 java/org/apache/tomcat/util/net/NioEndpoint.java   | 43 --
 .../apache/tomcat/util/net/SocketWrapperBase.java  | 23 +++-
 webapps/docs/changelog.xml |  5 +++
 3 files changed, 59 insertions(+), 12 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java 
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index e8348e90f0..d074153bbc 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -1295,20 +1295,20 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 
 @Override
 protected boolean flushNonBlocking() throws IOException {
-boolean dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+boolean dataLeft = socketOrNetworkBufferHasDataLeft();
 
 // Write to the socket, if there is anything to write
 if (dataLeft) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 
 if (!dataLeft && !nonBlockingWriteBuffer.isEmpty()) {
 dataLeft = nonBlockingWriteBuffer.write(this, false);
 
-if (!dataLeft && !socketBufferHandler.isWriteBufferEmpty()) {
+if (!dataLeft && socketOrNetworkBufferHasDataLeft()) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 }
 
@@ -1316,6 +1316,22 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 }
 
 
+/*
+ * https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
+ *
+ * When using TLS an additional buffer is used for the encrypted data
+ * before it is written to the network. It is possible for this network
+ * output buffer to contain data while the socket write buffer is 
empty.
+ *
+ * For NIO with non-blocking I/O, this case is handling by ensuring 
that
+ * flush only returns false (i.e. no data left to flush) if all buffers
+ * are empty.
+ */
+private boolean socketOrNetworkBufferHasDataLeft() {
+return !socketBufferHandler.isWriteBufferEmpty() || 
getSocket().getOutboundRemaining() > 0;
+}
+
+
 @Override
 protected void doWrite(boolean block, ByteBuffer buffer) throws 
IOException {
 int n = 0;
@@ -1556,6 +1572,11 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 return inline;
 }
 
+@Override
+protected boolean hasOutboundRemaining() {
+return getSocket().getOutboundRemaining() > 0;
+}
+
 @Override
 public void run() {
 // Perform the IO operation
@@ -1588,13 +1609,13 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 } else {
 boolean doWrite = true;
 // Write from main buffer first
-if (!socketBufferHandler.isWriteBufferEmpty()) 
{
+if (socketOrNetworkBufferHasDataLeft()) {
 // There is still data inside the main 
write buffer, it needs to be written first
 
socketBufferHandler.configureWriteBufferForRead();
 do {
 nBytes = 
getSocket().write(socketBufferHandler.getWriteBuffer());
-} while 
(!socketBufferHandler.isWriteBufferEmpty() && nBytes > 0);
-if 
(!socketBufferHandler.isWriteBufferEmpty()) {
+} while 
(socketOrNetworkBufferHasDataLeft() && nBytes > 0);
+if (socketOrNetworkBufferHasDataLeft()) {
 doWrite = false;
 }
 // Preserve a negative value since it is 
an error
@@ -1615,7 +1636,8 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 

[tomcat] branch 10.0.x updated: Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

2022-05-25 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 71056e7a28 Fix BZ 66076. Non-blocking flush with TLS+NIO must flush 
network buffer
71056e7a28 is described below

commit 71056e7a283d03cdab642593de2b1005ccea98ee
Author: Mark Thomas 
AuthorDate: Mon May 23 10:17:02 2022 +0100

Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
---
 java/org/apache/tomcat/util/net/NioEndpoint.java   | 43 --
 .../apache/tomcat/util/net/SocketWrapperBase.java  | 23 +++-
 webapps/docs/changelog.xml |  5 +++
 3 files changed, 59 insertions(+), 12 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java 
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index 0a832b60b9..05804c4f17 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -1318,20 +1318,20 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 
 @Override
 protected boolean flushNonBlocking() throws IOException {
-boolean dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+boolean dataLeft = socketOrNetworkBufferHasDataLeft();
 
 // Write to the socket, if there is anything to write
 if (dataLeft) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 
 if (!dataLeft && !nonBlockingWriteBuffer.isEmpty()) {
 dataLeft = nonBlockingWriteBuffer.write(this, false);
 
-if (!dataLeft && !socketBufferHandler.isWriteBufferEmpty()) {
+if (!dataLeft && socketOrNetworkBufferHasDataLeft()) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 }
 
@@ -1339,6 +1339,22 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 }
 
 
+/*
+ * https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
+ *
+ * When using TLS an additional buffer is used for the encrypted data
+ * before it is written to the network. It is possible for this network
+ * output buffer to contain data while the socket write buffer is 
empty.
+ *
+ * For NIO with non-blocking I/O, this case is handling by ensuring 
that
+ * flush only returns false (i.e. no data left to flush) if all buffers
+ * are empty.
+ */
+private boolean socketOrNetworkBufferHasDataLeft() {
+return !socketBufferHandler.isWriteBufferEmpty() || 
getSocket().getOutboundRemaining() > 0;
+}
+
+
 @Override
 protected void doWrite(boolean block, ByteBuffer buffer) throws 
IOException {
 int n = 0;
@@ -1579,6 +1595,11 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 return inline;
 }
 
+@Override
+protected boolean hasOutboundRemaining() {
+return getSocket().getOutboundRemaining() > 0;
+}
+
 @Override
 public void run() {
 // Perform the IO operation
@@ -1611,13 +1632,13 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 } else {
 boolean doWrite = true;
 // Write from main buffer first
-if (!socketBufferHandler.isWriteBufferEmpty()) 
{
+if (socketOrNetworkBufferHasDataLeft()) {
 // There is still data inside the main 
write buffer, it needs to be written first
 
socketBufferHandler.configureWriteBufferForRead();
 do {
 nBytes = 
getSocket().write(socketBufferHandler.getWriteBuffer());
-} while 
(!socketBufferHandler.isWriteBufferEmpty() && nBytes > 0);
-if 
(!socketBufferHandler.isWriteBufferEmpty()) {
+} while 
(socketOrNetworkBufferHasDataLeft() && nBytes > 0);
+if (socketOrNetworkBufferHasDataLeft()) {
 doWrite = false;
 }
 // Preserve a negative value since it is 
an error
@@ -1638,7 +1659,8 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 

[tomcat] branch 8.5.x updated: Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

2022-05-25 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 bd6cf00963 Fix BZ 66076. Non-blocking flush with TLS+NIO must flush 
network buffer
bd6cf00963 is described below

commit bd6cf009630f3ff49056d246413765c2c05cc372
Author: Mark Thomas 
AuthorDate: Mon May 23 10:17:02 2022 +0100

Fix BZ 66076. Non-blocking flush with TLS+NIO must flush network buffer

https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
---
 java/org/apache/tomcat/util/net/NioEndpoint.java   | 43 --
 .../apache/tomcat/util/net/SocketWrapperBase.java  | 23 +++-
 webapps/docs/changelog.xml |  5 +++
 3 files changed, 59 insertions(+), 12 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java 
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index ab9b2552f5..a6eaac0b3a 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -1245,20 +1245,20 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 
 @Override
 protected boolean flushNonBlocking() throws IOException {
-boolean dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+boolean dataLeft = socketOrNetworkBufferHasDataLeft();
 
 // Write to the socket, if there is anything to write
 if (dataLeft) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 
 if (!dataLeft && !nonBlockingWriteBuffer.isEmpty()) {
 dataLeft = nonBlockingWriteBuffer.write(this, false);
 
-if (!dataLeft && !socketBufferHandler.isWriteBufferEmpty()) {
+if (!dataLeft && socketOrNetworkBufferHasDataLeft()) {
 doWrite(false);
-dataLeft = !socketBufferHandler.isWriteBufferEmpty();
+dataLeft = socketOrNetworkBufferHasDataLeft();
 }
 }
 
@@ -1266,6 +1266,22 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 }
 
 
+/*
+ * https://bz.apache.org/bugzilla/show_bug.cgi?id=66076
+ *
+ * When using TLS an additional buffer is used for the encrypted data
+ * before it is written to the network. It is possible for this network
+ * output buffer to contain data while the socket write buffer is 
empty.
+ *
+ * For NIO with non-blocking I/O, this case is handling by ensuring 
that
+ * flush only returns false (i.e. no data left to flush) if all buffers
+ * are empty.
+ */
+private boolean socketOrNetworkBufferHasDataLeft() {
+return !socketBufferHandler.isWriteBufferEmpty() || 
getSocket().getOutboundRemaining() > 0;
+}
+
+
 @Override
 protected void doWrite(boolean block, ByteBuffer buffer) throws 
IOException {
 int n = 0;
@@ -1510,6 +1526,11 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 return inline;
 }
 
+@Override
+protected boolean hasOutboundRemaining() {
+return getSocket().getOutboundRemaining() > 0;
+}
+
 @Override
 public void run() {
 // Perform the IO operation
@@ -1542,13 +1563,13 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 } else {
 boolean doWrite = true;
 // Write from main buffer first
-if (!socketBufferHandler.isWriteBufferEmpty()) 
{
+if (socketOrNetworkBufferHasDataLeft()) {
 // There is still data inside the main 
write buffer, it needs to be written first
 
socketBufferHandler.configureWriteBufferForRead();
 do {
 nBytes = 
getSocket().write(socketBufferHandler.getWriteBuffer());
-} while 
(!socketBufferHandler.isWriteBufferEmpty() && nBytes > 0);
-if 
(!socketBufferHandler.isWriteBufferEmpty()) {
+} while 
(socketOrNetworkBufferHasDataLeft() && nBytes > 0);
+if (socketOrNetworkBufferHasDataLeft()) {
 doWrite = false;
 }
 // Preserve a negative value since it is 
an error
@@ -1569,7 +1590,8 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
   

[Bug 66076] Final block of encrypted response payload not being sent occasionally over TLS

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

Mark Thomas  changed:

   What|Removed |Added

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

--- Comment #17 from Mark Thomas  ---
Thanks for testing.

Fixed in:
- 10.1.x for 10.1.0-M16 onwards
- 10.0.x for 10.0.22 onwards
- 9.0.x for 9.0.64 onwards
- 8.5.x for 8.5.80 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 66056] Enable Tomcat to support variables with spaces when defining environment variables _RUNJAVA and _RUNJDB (Windows)

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

Mark Thomas  changed:

   What|Removed |Added

 Status|NEEDINFO|RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #2 from Mark Thomas  ---
No response to request for further info and I'm unable to trigger issues with
the current implementation.

-- 
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 65975] CLIENT-CERT authentication does not request cert from client and always denies access (401)

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

Mark Thomas  changed:

   What|Removed |Added

 Resolution|--- |WORKSFORME
 Status|NEEDINFO|RESOLVED

--- Comment #23 from Mark Thomas  ---
Requested information has not been provided so I'm closing this issue.

If you are able to recreate this issue and can provide the steps to recreate it
from a clean install of the latest 9.0.x release, then feel free to re-open
this issue and provide the reproduction steps.

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