Re: [VOTE] Release Apache Tomcat 9.0.21

2019-06-04 Thread Rémy Maucherat
On Tue, Jun 4, 2019 at 10:50 PM Mark Thomas  wrote:

> The proposed Apache Tomcat 9.0.21 release is now available for voting.
>
> The major changes compared to the 9.0.20 release are:
>
> - Fix various concurrency and stability issues for HTTP/2.
>
> - Add support for same-site cookie attribute. Patch provided by John
>   Kelly.
>
> - Add an option to sort directory listings provided by the Default
>   Servlet.
>
> Along with lots of other bug fixes and improvements.
>
> For full details, see the changelog:
> https://ci.apache.org/projects/tomcat/tomcat9/docs/changelog.html
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.21/
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1213/
> The tag is:
> https://github.com/apache/tomcat/tree/9.0.21
> 5dd82367de857318b8a384c07c4414e5d55cc975
>
> The proposed 9.0.21 release is:
> [ ] Broken - do not release
> [X] Stable - go ahead and release as 9.0.21
>

Although it's probably too early to assert it's 100% done and fine [most
likely not], the biggest chunk of the current stability / improvements /
refactorings round to endpoints that started with 9.0.15 is now done. Nice !

All connectors have the async NIO2 style IO API available, NIO performs a
lot better with it than I expected (and it's stable), APR otoh fared worse
given all its missing features. This API is available to protocol handlers
and internal upgrade handlers. Looking ahead, if the Servlet API adds
(real) async IO of some sort (leaving behind IS/OS container managed
buffered IO), then this would be a good backend for it.

Rémy


Re: Fwd: Tomcat 7.0.84 vs. 7.0.91 config diff webpage not available

2019-06-04 Thread Mark Thomas
On 04/06/2019 22:32, Chris Lambertus wrote:
> This looks like it relies on tooling we had to disable on gitbox due to
> abuse of the service. You may want to point this at github’s diff system
> instead.

Chris,

Last time I checked Infra's intention was to re-enable this service on
gitbox. Is this no longer the case? We haven't yet found a way to create
the per folder diff on Github.

Thanks,

Mark



> I have not replied to the customer.  
> 
> 
> -Chris
> 
> 
> 
>> Begin forwarded message:
>>
>> *From: *proste ja mailto:zbytoc...@gmail.com>>
>> *Subject: **Tomcat 7.0.84 vs. 7.0.91 config diff webpage not available*
>> *Date: *June 4, 2019 at 12:20:50 AM PDT
>> *To: *webmas...@apache.org 
>>
>> Hello,
>> when I try to check the config differences  in Tomcat 7.0.84 vs.
>> 7.0.91 
>> via https://tomcat.apache.org/migration-7.html#Upgrading_7.0.x  a
>> website with ofrbidden access output comes up.
>> Are those diff  unavailable? 
>> Thank you
>> Kalapos
>> PS: screen attached
>>
> 


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



Fwd: Tomcat 7.0.84 vs. 7.0.91 config diff webpage not available

2019-06-04 Thread Chris Lambertus
This looks like it relies on tooling we had to disable on gitbox due to abuse 
of the service. You may want to point this at github’s diff system instead.

I have not replied to the customer.  


-Chris



> Begin forwarded message:
> 
> From: proste ja 
> Subject: Tomcat 7.0.84 vs. 7.0.91 config diff webpage not available
> Date: June 4, 2019 at 12:20:50 AM PDT
> To: webmas...@apache.org
> 
> Hello,
> when I try to check the config differences  in Tomcat 7.0.84 vs. 7.0.91  via 
> https://tomcat.apache.org/migration-7.html#Upgrading_7.0.x 
>   a website with 
> ofrbidden access output comes up.
> Are those diff  unavailable? 
> Thank you
> Kalapos
> PS: screen attached
> 



[VOTE] Release Apache Tomcat 8.5.42

2019-06-04 Thread Mark Thomas
The proposed Apache Tomcat 8.5.42 release is now available for voting.

The major changes compared to the 8.5.41 release are:

- Fix various concurrency and stability issues for HTTP/2.

- Add support for same-site cookie attribute. Patch provided by John
  Kelly.

- Add an option to sort directory listings provided by the Default
  Servlet.

Along with lots of other bug fixes and improvements.

For full details, see the changelog:
https://ci.apache.org/projects/tomcat/tomcat85/docs/changelog.html

It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.5.42/

The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1214/

The tag is:
https://github.com/apache/tomcat/tree/8.5.42
00b711f6af57e043bf4d5d64dbc1617970a54d69


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

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



svn commit: r34409 [1/2] - in /dev/tomcat/tomcat-8/v8.5.42: ./ bin/ bin/embed/ bin/extras/ src/

2019-06-04 Thread markt
Author: markt
Date: Tue Jun  4 21:05:39 2019
New Revision: 34409

Log:
Upload 8.5.42 for voting

Added:
dev/tomcat/tomcat-8/v8.5.42/
dev/tomcat/tomcat-8/v8.5.42/KEYS
dev/tomcat/tomcat-8/v8.5.42/README.html
dev/tomcat/tomcat-8/v8.5.42/RELEASE-NOTES
dev/tomcat/tomcat-8/v8.5.42/bin/
dev/tomcat/tomcat-8/v8.5.42/bin/README.html
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.tar.gz   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.tar.gz.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.tar.gz.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.zip   (with 
props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.zip.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-deployer.zip.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-fulldocs.tar.gz   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-fulldocs.tar.gz.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-fulldocs.tar.gz.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x64.zip   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x64.zip.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x64.zip.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x86.zip   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x86.zip.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42-windows-x86.zip.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.exe   (with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.exe.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.exe.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz   (with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.zip   (with props)
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.zip.asc
dev/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.zip.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/embed/
dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.tar.gz   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.tar.gz.asc

dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.tar.gz.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.zip   
(with props)
dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.zip.asc
dev/tomcat/tomcat-8/v8.5.42/bin/embed/apache-tomcat-8.5.42-embed.zip.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/extras/
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-jmx-remote.jar   (with 
props)
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-jmx-remote.jar.asc
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-jmx-remote.jar.sha512
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-ws.jar   (with props)
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-ws.jar.asc
dev/tomcat/tomcat-8/v8.5.42/bin/extras/catalina-ws.jar.sha512
dev/tomcat/tomcat-8/v8.5.42/src/
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.tar.gz   (with 
props)
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.tar.gz.asc
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.tar.gz.sha512
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip   (with props)
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.asc
dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.sha512

Added: dev/tomcat/tomcat-8/v8.5.42/KEYS
==
--- dev/tomcat/tomcat-8/v8.5.42/KEYS (added)
+++ dev/tomcat/tomcat-8/v8.5.42/KEYS Tue Jun  4 21:05:39 2019
@@ -0,0 +1,676 @@
+This file contains the PGP keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Apache users: pgp < KEYS
+Apache developers:
+(pgpk -ll  && pgpk -xa ) >> this file.
+  or
+(gpg --fingerprint --list-sigs 
+ && gpg --armor --export ) >> this file.
+
+Apache developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+
+Type Bits/KeyIDDate   User ID
+pub  2048/F22C4FED 2001/07/02 Andy Armstrong 
+
+-BEGIN PGP PUBLIC KEY BLOCK-
+Version: PGPfreeware 7.0.3 for non-commercial use 
+
+mQGiBDtAWuURBADZ0KUEyUkSUiTA09e7tvEbX25STsjxrR+DNTainCls+XlkVOij
+gBv216lqge9tIsS0L6hCP4OQbFf/64qVtJssX4QXdyiZGb5wpmcj0Mz602Ew8r+N
+I0S5NvmogoYWW7BlP4r61jNxO5zrr03KaijM5r4ipJdLUxyOmM6P2jRPUwCg/5gm
+bpqiYl7pXX5FgDeB36tmD+UD/06iLqOnoiKO0vMbOk7URclhCObMNrHqxTxozMTS
+B9soYURbIeArei+plYo2n+1qB12ayybjhVu3uksXRdT9bEkyxMfslvLbIpDAG8Cz

svn commit: r34409 [2/2] - in /dev/tomcat/tomcat-8/v8.5.42: ./ bin/ bin/embed/ bin/extras/ src/

2019-06-04 Thread markt
Added: dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.asc
==
--- dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.asc (added)
+++ dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.asc Tue Jun  4 
21:05:39 2019
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCAAdFiEEqcXfTSLpmZjZh1pREMAcWi9gWecFAlz21YUACgkQEMAcWi9g
+WefKDxAAn6zt8Af0WuaFYd48WY99hsy0RSN21eGPgqtvyXSUOOwspUeSyoKRs8Ql
+G5EGc700FUu8l6lZaqS+Qty4Cnxx0gr4wqO0jcqK4/Zkeec5MWTWRPuhvg5iYuh5
++0+jmStUA4tgDZt8GZfj7wTvkCQIxL0TbyxHZFkxHGXmxhFKCbJTAGrg5vJ1W2oT
+FeUxq6pFE4nQOlUR5FENN4lvhJs00X94nnHrG0mD5i6vRe1OD6kVFAl4AhfnFLiP
+gqY/7/+IOreSTefTcfM93DtixknUrIkISDMb4EVx74+Fnhx0cbyG8lTLrtBlzwB7
+CccMNIaMPqN7OLhmKXDHpdCEM98o+9OFlBMQ4YDaeKh6bjYrThWiMlITh1W6ra5T
+CvoTIoxL8BucI/+KszmIzkoGkmCck2krYODO1GmBv01naaACWhZ3BBaLSeTRcJJa
+A6DjmR35NbktmWDNuIdEgpFX9PyoDh7kh0hTGh/kEhUY3Y6v3E4qEAtcxByxLL9m
+I2fDN2vacCZ0rwJlHcgSAUfUvj7F7BQUeMs+vG1n4DD9nB066P4GtEjPCwJklT1+
+jc14Pgf/eeNhVmAIYTkpQ2tt32JZ0NYj3e4e6/KhQ2jlVhTS4mbmOVIVAzPbx/Kg
+wso9eYUXYou9bpcX1OJDYOywE1JTLVwswCKD98R9sIZW6Wpsc00=
+=Iw2q
+-END PGP SIGNATURE-

Added: dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.sha512
==
--- dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.sha512 (added)
+++ dev/tomcat/tomcat-8/v8.5.42/src/apache-tomcat-8.5.42-src.zip.sha512 Tue Jun 
 4 21:05:39 2019
@@ -0,0 +1 @@
+84b80e96db32613e6ec7f871c15f9bb016e9af99c127d2634f408ab4d8691e951c4b38364d7cf2465d4c48b5d117f24960abc504afedeecd8624a4df3c69637d
 *apache-tomcat-8.5.42-src.zip
\ No newline at end of file



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



Re: adding new JMX attributes

2019-06-04 Thread Eugène Adell
Hello,

thanks for your answer.

> What are the data types? When are they updated? What about meta-realms
> such as LockOutRealm? How should they behave?

Taking example on counters that I see else where
(GlobalRequestProcessor->errorCount) integers should be enough, one of
the counters would be incremented on each authentication respectively
the success or the failure depending on the result. I'm not talking
about counting each request, this is already done by
GlobalRequestProcessor->requestCount, but counting requests following
a 401 ( OK, you can send Basic credentials directly, but at one moment
in the processing the credentials are checked and will increment the
right counter)

The LockOutRealm is an active element, while I'm just suggesting
counters for passive monitoring (with the idea of aggregating data
from different Tomcats on a SIEM for example, and give knowledge to
people who need before taking a decision instead of anything
automatic). For this reason I think LockOutRealm is not related to my
problem. However, the realm name might be difficult to know in
advance, either you need to discover it by parsing the MBeans, or you
can add all similar counters values at a higher level
(GlobalRequestProcessor ?) if you have several realms ? This would
give a quick overview on what's going on, and an automate would easily
find the data.

> Do you want to be able to set/reset them?

I don't see reason to set them, although resetting could be used.
That's not important for me.


> I'm (slowly) working on a scheme where you can register a listener for
> authentication failed/succeeded events. Would that work for you as
> well, or is JMX a lot more convenient for you?

Everything would work but we don't know exactly what uses will do
other people with that. After installing/administering thousands of
Tomcats I'm more likely to expect simple solutions, and log files seem
simple enough until you cannot write them (FS full, FS went to
read-only, bad permissions, logging.properties configuration that no
one completely understands ..) while JMX has its own pros & cons.

To think further, I would ask you if the JMX notifications that are
still not used in Tomcat could start being used. For example on a
LockOut event, this could make sense to notify towards a monitoring
tool or a SIEM. With all that in mind, I would rather go through JMX.

best regards
Eugene








Le mar. 4 juin 2019 à 18:59, Christopher Schultz
 a écrit :
>
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> Eugéne,
>
> On 6/4/19 08:03, Eugène Adell wrote:
> > Hi guys,
> >
> > I started to investigate how I could add 2 new JMX attributes, and
> > that doesn't look very difficult even for someone who doesn't look
> > at Tomcat's source code often.
> >
> > My suggestion would be to add these 2 new attributes
> > (authenticationSucceeded and authenticationFailed) to all Realms,
> > then one could monitor suspicious activity without any access to
> > the log files. It is just in a monitoring perspective, not to
> > change the behavior for any user as the LockOutRealm is doing.
> >
> > What do you think ?
>
> What are the data types? When are they updated? What about meta-realms
> such as LockOutRealm? How should they behave?
>
> Do you want to be able to set/reset them?
>
> I'm (slowly) working on a scheme where you can register a listener for
> authentication failed/succeeded events. Would that work for you as
> well, or is JMX a lot more convenient for you?
>
> - -chris
> -BEGIN PGP SIGNATURE-
> Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
>
> iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlz2o4EACgkQHPApP6U8
> pFhXcQ/+OG93S1MtqMmRRzlsyuz4DQauAVi9BZ9K8HAcPfnYTympS3BnjGkWBIcv
> 8zctQbqntMDfHfLjvM3n5FHhf9CO+x2lIKZQ3HFPnfL+FiGMhfassm/u9RDy7zub
> Io4MnvrEUhAqRTp5NqNTlh6VWVt88EywYOC3HhsA6w6Y584z+v7i9S+Orp9iuFiV
> /PaolzwaCNK6ZQurUs5lZo58uc8ByC/yJAuB1TysHhtNzFK90kakUQN8TJRZIzk8
> lQcyJvS88vZhx46oJ/pt5nkpaAdcIQtp7+OolkEaYVF+ei75aYYVtJ+LZLSldc2u
> 6wvFMjUwBf5o6A/mQBmNyGb39aWUwROouszr8cg4IAJ/5MHi+oV6bkD/KAk3jW67
> eKAg/bRdRDQnQoOYzCVdTiL9XPI5eY8kw2uTbZ/DwdSTJ6rJKLjmzNdM37aCWWww
> C6PVIoBDH6TrcVxOwq/xmZqkkJ6NMgpFp+EWRFQHYAXKHC/hS9nCAWTMGQ0Pw8QC
> ei5RdTQs0S66wZd0SupXTx4kmBmYmtxLPUmXS6qTVUi+0h0xDToNwYb+pPKS048t
> D4Oyrn7zoKXJwLL2Zm1TY8g9xsAtXKOvi9kA5ITgZL3eBKHydwjYZxUXiw1mlo5v
> QZaLpLPIyEbqxQCHlqStCNRi91jRr7ACFoWz3xwgBu4gmEhDosw=
> =NTij
> -END PGP SIGNATURE-
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>

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



[VOTE] Release Apache Tomcat 9.0.21

2019-06-04 Thread Mark Thomas
The proposed Apache Tomcat 9.0.21 release is now available for voting.

The major changes compared to the 9.0.20 release are:

- Fix various concurrency and stability issues for HTTP/2.

- Add support for same-site cookie attribute. Patch provided by John
  Kelly.

- Add an option to sort directory listings provided by the Default
  Servlet.

Along with lots of other bug fixes and improvements.

For full details, see the changelog:
https://ci.apache.org/projects/tomcat/tomcat9/docs/changelog.html

It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.21/
The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1213/
The tag is:
https://github.com/apache/tomcat/tree/9.0.21
5dd82367de857318b8a384c07c4414e5d55cc975

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

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



svn commit: r34408 - in /dev/tomcat/tomcat-9/v9.0.21: ./ bin/ bin/embed/ src/

2019-06-04 Thread markt
Author: markt
Date: Tue Jun  4 20:48:41 2019
New Revision: 34408

Log:
Upload 9.0.21 for voting

Added:
dev/tomcat/tomcat-9/v9.0.21/
dev/tomcat/tomcat-9/v9.0.21/KEYS
dev/tomcat/tomcat-9/v9.0.21/README.html
dev/tomcat/tomcat-9/v9.0.21/RELEASE-NOTES
dev/tomcat/tomcat-9/v9.0.21/bin/
dev/tomcat/tomcat-9/v9.0.21/bin/README.html
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.tar.gz   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.tar.gz.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.tar.gz.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.zip   (with 
props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.zip.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-deployer.zip.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-fulldocs.tar.gz   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-fulldocs.tar.gz.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-fulldocs.tar.gz.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x64.zip   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x64.zip.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x64.zip.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x86.zip   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x86.zip.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21-windows-x86.zip.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.exe   (with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.exe.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.exe.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz   (with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.zip   (with props)
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.zip.asc
dev/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.zip.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/embed/
dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.tar.gz   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.tar.gz.asc

dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.tar.gz.sha512
dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.zip   
(with props)
dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.zip.asc
dev/tomcat/tomcat-9/v9.0.21/bin/embed/apache-tomcat-9.0.21-embed.zip.sha512
dev/tomcat/tomcat-9/v9.0.21/src/
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.tar.gz   (with 
props)
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.tar.gz.asc
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.tar.gz.sha512
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.zip   (with props)
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.zip.asc
dev/tomcat/tomcat-9/v9.0.21/src/apache-tomcat-9.0.21-src.zip.sha512

Added: dev/tomcat/tomcat-9/v9.0.21/KEYS
==
--- dev/tomcat/tomcat-9/v9.0.21/KEYS (added)
+++ dev/tomcat/tomcat-9/v9.0.21/KEYS Tue Jun  4 20:48:41 2019
@@ -0,0 +1,676 @@
+This file contains the PGP keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Apache users: pgp < KEYS
+Apache developers:
+(pgpk -ll  && pgpk -xa ) >> this file.
+  or
+(gpg --fingerprint --list-sigs 
+ && gpg --armor --export ) >> this file.
+
+Apache developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+
+Type Bits/KeyIDDate   User ID
+pub  2048/F22C4FED 2001/07/02 Andy Armstrong 
+
+-BEGIN PGP PUBLIC KEY BLOCK-
+Version: PGPfreeware 7.0.3 for non-commercial use 
+
+mQGiBDtAWuURBADZ0KUEyUkSUiTA09e7tvEbX25STsjxrR+DNTainCls+XlkVOij
+gBv216lqge9tIsS0L6hCP4OQbFf/64qVtJssX4QXdyiZGb5wpmcj0Mz602Ew8r+N
+I0S5NvmogoYWW7BlP4r61jNxO5zrr03KaijM5r4ipJdLUxyOmM6P2jRPUwCg/5gm
+bpqiYl7pXX5FgDeB36tmD+UD/06iLqOnoiKO0vMbOk7URclhCObMNrHqxTxozMTS
+B9soYURbIeArei+plYo2n+1qB12ayybjhVu3uksXRdT9bEkyxMfslvLbIpDAG8Cz
+gNftTbKx/MVS7cQU0II8BKo2Akr+1FZah+sD4ovK8SfkMXUQUbTeefTntsAQKyyU
+9M9tA/9on9tBiHFl0qVJht6N4GiJ2G689v7rS2giLgKjetjiCduxBXEgvUSuyQID
+nF9ATrpXjITwsRlGKFmpZiFm5oCeCXihIVH0u6q066xNW2AXkLVoJ1l1Rs2Z0lsb
+0cq3xEAcwAmYLKQvCtgDV8CYgWKVmPi+49rSuQn7Lo9l02OUbLQgQW5keSBBcm1z
+dHJvbmcgPGFuZHlAdGFnaXNoLmNvbT6JAFgEEBECABgFAjtAWuUICwMJCAcCAQoC
+GQEFGwMACgkQajrT9PIsT+1plgCfXAovWnVL3MjrTfcGlFSKw7GHCSYAoJkz
+x+r2ANe8/0e+u5ZcYtSaSry+uQINBDtAWuUQCAD2Qle3CH8IF3KiutapQvMF6PlT

Nexus: Staging Completed

2019-06-04 Thread Nexus Repository Manager
Message from: https://repository.apache.orgDeployer properties:"userAgent" = "maven-artifact/2.2.1 (Java 1.7.0_80; Windows 7 6.1)""userId" = "markt""ip" = "86.152.79.71"Details:The following artifacts have been staged/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42.jar(SHA1: 160a3b6f4797d7661c213a850bff73098376349d)/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42.pom(SHA1: 633e1d9c4900f963f842237a68767c867bd889cc)/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42.pom.asc(SHA1: df45bd256d64988f3c1a90b5b1d29db744566b31)/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42-sources.jar(SHA1: 75fa71d7cd4e83bc6e6c78f5281943790fcab75d)/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42-sources.jar.asc(SHA1: 872d9cc0a06f1df788ff99c2e5526ad3745cc76c)/org/apache/tomcat/tomcat-jni/8.5.42/tomcat-jni-8.5.42.jar.asc(SHA1: e83342dd0c717f1161e499e2028fb65fa1e47021)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42.pom(SHA1: 54d747c7b503cbd293a38592b3faa36370adf627)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42.jar.asc(SHA1: d260d261c8b1cb4a3912b0d80d10be5349c8895c)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42-sources.jar.asc(SHA1: 779671ec3498644f2ec3acce45ed372515664877)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42-sources.jar(SHA1: e3e38d27a3309ad728521df9822d497c609fadc8)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42.pom.asc(SHA1: fba344fa76f895d2b747335de30b85c2fe57973a)/org/apache/tomcat/tomcat-juli/8.5.42/tomcat-juli-8.5.42.jar(SHA1: ad0e14d57e04662fbb9a9957568892cbab8e2195)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42-sources.jar(SHA1: 3303cf60863ddd18efd02ef94d1861197216e77b)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42-sources.jar.asc(SHA1: 5092af74623dbedada44580f4a4b00d9d39a1bdb)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42.jar(SHA1: baa591ffcfe89e87e1a356cc9a12507f522af0b8)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42.pom.asc(SHA1: 14e1fea4295685d504e2c96bcf4aa26cbe599467)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42.jar.asc(SHA1: 95a758aeb7583dd4401120b4005eb55ed83fc3b4)/org/apache/tomcat/tomcat-util/8.5.42/tomcat-util-8.5.42.pom(SHA1: 045bc3900379570197ddecdc43f7ec9ec6becc67)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42.jar(SHA1: e0e859963e43fa02d05173e64fae70cb3857bf38)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42-sources.jar(SHA1: 71c8644e1ece2f4d98514a66c1785398630b51eb)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42-sources.jar.asc(SHA1: 93252672e30675a8c12b4d20dccd8581bbb05a1a)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42.jar.asc(SHA1: 08a43c4fe9a5d52c67a87a18d6db9a28fe8313a3)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42.pom.asc(SHA1: db9e55112add76daf526ace07b34a06b00975626)/org/apache/tomcat/tomcat-catalina/8.5.42/tomcat-catalina-8.5.42.pom(SHA1: 1792e95fbe4b5152d1127fc696ff6b4a7dadb9be)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42.pom.asc(SHA1: f54d51f937707242041070f0f120b03429ff307c)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42.jar.asc(SHA1: 92aee3f74d7b86a70ba9ce357fa191a9ad376b92)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42-sources.jar.asc(SHA1: 1040b78304c09fe4c6d3f438ea99867dca33cd9e)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42.pom(SHA1: d53e1cda65833de0853f85b4b0ed8db1967bee5b)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42.jar(SHA1: 3f15cd2d366f5285c6541f1bf22a189f2f748935)/org/apache/tomcat/tomcat-catalina-ws/8.5.42/tomcat-catalina-ws-8.5.42-sources.jar(SHA1: 6db964a4b7efc3818612ed77b77d2b4ff0a872db)/org/apache/tomcat/tomcat-i18n-fr/8.5.42/tomcat-i18n-fr-8.5.42.pom.asc(SHA1: 2450f50ceae9e5d8da6167511db8da708aacc110)/org/apache/tomcat/tomcat-i18n-fr/8.5.42/tomcat-i18n-fr-8.5.42.jar(SHA1: a4631abd8a57138a72dae41a6574a689761d2740)/org/apache/tomcat/tomcat-i18n-fr/8.5.42/tomcat-i18n-fr-8.5.42.jar.asc(SHA1: 37a6cfd3294ec98feba233891f9ba7e773cb5ec5)/org/apache/tomcat/tomcat-i18n-fr/8.5.42/tomcat-i18n-fr-8.5.42.pom(SHA1: ed6a3fd6e9a0ed641c0046d1fbeb4fff996a668c)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42.jar(SHA1: 9f43d553bcf7e9cbabb1377cf471b889ba66de86)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42.pom(SHA1: a7541df77c4330a4b78fdd01a276a9d7f176d0b5)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42.jar.asc(SHA1: 71874782ae573e5bb1aa4db4259983b379b4d4ed)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42-sources.jar(SHA1: e656c570a4dab1fca8d6ceb3f257ac52df3f8a81)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42-sources.jar.asc(SHA1: fe70fc8916ebf58a9e97fd7c80bf7bcaecd77ba0)/org/apache/tomcat/tomcat-jdbc/8.5.42/tomcat-jdbc-8.5.42.pom.asc(SHA1: 8229147a95bec808a72c61068192ca0cc38e2305)/org/apache/tomcat/embed/tomcat-embed-core/8.5.42/tomcat-embed-core-8.5.42.pom.asc(SHA1: 

Nexus: Staging Completed

2019-06-04 Thread Nexus Repository Manager
Message from: https://repository.apache.orgDeployer properties:"userAgent" = "maven-artifact/2.2.1 (Java 1.8.0_212; Windows 7 6.1)""userId" = "markt""ip" = "86.152.79.71"Details:The following artifacts have been staged/org/apache/tomcat/tomcat-i18n-de/9.0.21/tomcat-i18n-de-9.0.21.pom(SHA1: 10caca79fcf5a9660b4f89f4dfdb0aa1c67791cf)/org/apache/tomcat/tomcat-i18n-de/9.0.21/tomcat-i18n-de-9.0.21.pom.asc(SHA1: 16e21cbf9fd64f0888bf8d36027be02e6c7f9fc5)/org/apache/tomcat/tomcat-i18n-de/9.0.21/tomcat-i18n-de-9.0.21.jar(SHA1: 992496d9b3c401ac8edd43bd5b48c6a768dfd92a)/org/apache/tomcat/tomcat-i18n-de/9.0.21/tomcat-i18n-de-9.0.21.jar.asc(SHA1: 5e66c20eeba32554a2000c1f7049e4a662f17426)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21.pom(SHA1: 2a05609d8b4719575897ee044a8d504fb74845eb)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21.jar.asc(SHA1: 8382f9adcf0a031537214d7e8d45ba8dd8859c48)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21-sources.jar(SHA1: 823ebc399f7a77d2cbe2ee334b814542336bc157)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21-sources.jar.asc(SHA1: d049d1cb89e00b0276239a90ed486e3c8efc177c)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21.jar(SHA1: 8e3717f5108af799754335383a638a8bdb9ab035)/org/apache/tomcat/tomcat-jni/9.0.21/tomcat-jni-9.0.21.pom.asc(SHA1: 7ebc8b46e442ea90e00b29a319fdc5ca332c8992)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21.pom(SHA1: e1e7db63de69c05ff7bfa8c823d22693236057c3)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21.jar(SHA1: 55a4c01e19059ac4dddec84ea10f406abec1d56a)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21.jar.asc(SHA1: 7b7fcc323ed9494af58018a755e8f15b9ade0f2c)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21-sources.jar(SHA1: c50570c6da20c5120f6bb478a8ec19b21d526dd1)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21-sources.jar.asc(SHA1: 2ae67cbda602d15ea86a38a4dd794910709b9efd)/org/apache/tomcat/tomcat-juli/9.0.21/tomcat-juli-9.0.21.pom.asc(SHA1: 0603fb996260536904af4602cb1635acca22986b)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21.jar.asc(SHA1: cfd47f0dd6bcf747fad9682485f9ac75785a1e94)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21-sources.jar.asc(SHA1: 62cf8cab7d1b4840c9dee3f34e13a9cd59a0ec9a)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21.jar(SHA1: 018b47e1970596ee6c723a5694b5db0bdc251bf6)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21.pom.asc(SHA1: 3abd682667cebd6f308bed376add3f6aa5a0693d)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21.pom(SHA1: bd9bd44fabdb04b41faa3e2c3db695175f27fee0)/org/apache/tomcat/tomcat-util/9.0.21/tomcat-util-9.0.21-sources.jar(SHA1: ccc3c12fe54d79c668bf20e3d11a65631009e620)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21.pom.asc(SHA1: 39f425805ea666117cf323472ccbfb84f7a42641)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21-sources.jar.asc(SHA1: 6fb8c660c0cd966b93015de97689e74274b56ee0)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21.jar(SHA1: 6d54db49aa432b56a4c1c34c4a74c22a4a222b36)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21.pom(SHA1: 2ce120865a3461311b62b20c86391d0169939cdd)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21-sources.jar(SHA1: d43c768a0f0693271bce6e9f2cfcc5fe5b2c7624)/org/apache/tomcat/tomcat-catalina/9.0.21/tomcat-catalina-9.0.21.jar.asc(SHA1: c32ae3ff6a829bd998f8cef0916027e7bac800f8)/org/apache/tomcat/tomcat-i18n-fr/9.0.21/tomcat-i18n-fr-9.0.21.pom(SHA1: 0c0038f3dd39307dfdebe1a748cfdf0fa4a7b99a)/org/apache/tomcat/tomcat-i18n-fr/9.0.21/tomcat-i18n-fr-9.0.21.pom.asc(SHA1: dc85e64458a5e990e16278062fba74718520b7c2)/org/apache/tomcat/tomcat-i18n-fr/9.0.21/tomcat-i18n-fr-9.0.21.jar(SHA1: fce7bddc41ebc4996fa9ad725fe458a43cf68513)/org/apache/tomcat/tomcat-i18n-fr/9.0.21/tomcat-i18n-fr-9.0.21.jar.asc(SHA1: d70578aacf242355eab7aa5a82e4f45381066285)/org/apache/tomcat/tomcat-i18n-cs/9.0.21/tomcat-i18n-cs-9.0.21.jar.asc(SHA1: 74aae59caef77d16f1b15ab59c71cbe720f3d1bf)/org/apache/tomcat/tomcat-i18n-cs/9.0.21/tomcat-i18n-cs-9.0.21.jar(SHA1: b9933b99902ae64c299444dafeb0546d7d6d008e)/org/apache/tomcat/tomcat-i18n-cs/9.0.21/tomcat-i18n-cs-9.0.21.pom.asc(SHA1: 412d05b27485a0aab265f41455fbd7ce3399cf2b)/org/apache/tomcat/tomcat-i18n-cs/9.0.21/tomcat-i18n-cs-9.0.21.pom(SHA1: 5dbd6bc043c3543b642ec1f0270e2e91be513235)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21.pom(SHA1: 9f6960f90bf3e4accf8549dc3022cdc28321c15b)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21-sources.jar(SHA1: 541cb573d3410d794fe4e477582a1618f1cf3b97)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21.pom.asc(SHA1: 2196d8b853d875368757d3bdf7ecf7cbaf3f40b5)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21.jar.asc(SHA1: a6f61d6352c4df017f0a96067582e3169426c1e5)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21.jar(SHA1: cc70401986c4f4fcf7a7811862be575ae86fc02d)/org/apache/tomcat/tomcat-jdbc/9.0.21/tomcat-jdbc-9.0.21-sources.jar.asc(SHA1: 

svn commit: r34407 - in /release/tomcat: tomcat-8/v8.5.40/ tomcat-9/v9.0.19/

2019-06-04 Thread markt
Author: markt
Date: Tue Jun  4 20:31:27 2019
New Revision: 34407

Log:
Drop 8.5.40 and 9.0.19 from mirror network

Removed:
release/tomcat/tomcat-8/v8.5.40/
release/tomcat/tomcat-9/v9.0.19/


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



[tomcat] tag 8.5.42 created (now 00b711f)

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to tag 8.5.42
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


  at 00b711f  (commit)
This tag includes the following new commits:

 new 00b711f  Tag 8.5.42

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



[tomcat] 01/01: Tag 8.5.42

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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

commit 00b711f6af57e043bf4d5d64dbc1617970a54d69
Author: Mark Thomas 
AuthorDate: Tue Jun 4 21:21:55 2019 +0100

Tag 8.5.42
---
 build.properties.default   | 2 +-
 webapps/docs/changelog.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/build.properties.default b/build.properties.default
index be14532..5ebe11e 100644
--- a/build.properties.default
+++ b/build.properties.default
@@ -27,7 +27,7 @@ version.major=8
 version.minor=5
 version.build=42
 version.patch=0
-version.suffix=-dev
+version.suffix=
 
 # - Build control flags -
 # Note enabling validation uses Checkstyle which is LGPL licensed
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index ebaedc5..dfe5b4a 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -44,7 +44,7 @@
   They eventually become mixed with the numbered issues (i.e., numbered
   issues do not "pop up" wrt. others).
 -->
-
+
   
 
   


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



[tomcat] tag 9.0.21 created (now 5dd8236)

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to tag 9.0.21
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


  at 5dd8236  (commit)
This tag includes the following new commits:

 new 5dd8236  Tag 9.0.21

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



[tomcat] 01/01: Tag 9.0.21

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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

commit 5dd82367de857318b8a384c07c4414e5d55cc975
Author: Mark Thomas 
AuthorDate: Tue Jun 4 21:15:46 2019 +0100

Tag 9.0.21
---
 build.properties.default   | 2 +-
 webapps/docs/changelog.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/build.properties.default b/build.properties.default
index 1bacc19..3c173e6 100644
--- a/build.properties.default
+++ b/build.properties.default
@@ -27,7 +27,7 @@ version.major=9
 version.minor=0
 version.build=21
 version.patch=0
-version.suffix=-dev
+version.suffix=
 
 # - Build control flags -
 # Note enabling validation uses Checkstyle which is LGPL licensed
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7154236..9a15010 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -44,7 +44,7 @@
   They eventually become mixed with the numbered issues (i.e., numbered
   issues do not "pop up" wrt. others).
 -->
-
+
   
 
   


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



[CONF] Apache Tomcat > Troubleshooting and Diagnostics

2019-06-04 Thread Felix Schumacher (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Troubleshooting and Diagnostics 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Felix Schumacher edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 How To: Capture a thread dump  
 How To: Capture a heap dump  
 How To: Examine a Stacktrace  
 How To: Configure Tomcat for debugging  
 FAQ: Developing  
 FAQ: Memory  
 Tomcat Memory Leak Protection  
 Sun Technical Article: Monitoring and Managing Java SE 6 Platform Applications  
 Notes on using JMX clients  
 ... 
 
 jinfo - Prints JVM process info  
 jstack - Prints thread stack traces  
 jmap - Dumps heap and shows heap status  
 jhat - Heap Analyzer Tool  
 jcmd - Multitool intended to replace the above JDK tools  
 Profilers & Heap Analyzers 
 
 Eclipse Memory Analyzer (MAT)  
 YourKit Profiler  
  VisualVM Docs    
  
 
 
 
 Anchor 
 
 
 
 
 
 
 
 
 
usingjmxclients 
 
 
 
usingjmxclients 
 
 
  
 
 
  ... 
 
Look into Tomcat access log (the log file generated by AccessLogValve).  
 
If your request is not listed there, then it has not been processed by Tomcat. You need to look elsewhere (e.g. at your firewall). 
You will see what IP address your client is using, and whether it is using an IPv4 (127.0.0.1) or IPv6 address (0:0:0:0:0:0:0:1). Modern operating systems can use IPv6 addresses for localhost / local network access, while external network is still using IPv4. 2. Take a thread dump. This way you will find out what Tomcat is actually doing. 
If you are troubleshooting some process that takes noticeable time, take several (three) thread dumps with some interval between them. This way you will see if there are any changes, any progress. 3. Try debugging. 
A good place for a breakpoint is org.apache.catalina.connector.CoyoteAdapter.service() method. That is the entry point from Tomcat connectors and into the Servlet engine. At that place your request has already been received and its processing starts. 
  
 ... The main suspect is your own web application keeping a reference to Request / Response objects outside of their life cycle.  The lifetime of the Response object is documented in the Servlet specification. Quoting from section "5.8 Lifetime of the Response Object" of Servlet 4.0 specification:   "Each response object is valid only within the scope of a servlet’s service method, or within the scope of a filter’s doFilter method, unless the associated request object has asynchronous processing enabled for the component. If asynchronous processing on the associated request is started, then the response object remains valid until complete method on AsyncContext is called."   In case of asynchronous processing, when an error occurs Tomcat notifies all registered AsyncListener}}s and then calls {{complete() automatically if none of the listeners have called it yet. (Reference: 61768)   Also see sections "2.3.3.4 Thread Safety" and "3.13 Lifetime of the Request Object" of the same specification. To troubleshoot the issue: ... You can also search the archives of the Tomcat users' mailing lists for previous discussions mentioning the RECYCLE_FACADES flag. 2. Read about Java ImageIO issue. Accessing response objects after their lifetime can lead to security issues in your application, such as sending responses to wrong clients, mixing up responses. If you can reproduce the issue and the above diagnostic does not show your own bug, but a bug in Apache Tomcat, ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 6.15.2  
 
 
  
 
 
 
 
 
 
 
 
 




Re: [tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread Mark Thomas
On 04/06/2019 17:32, Mark Thomas wrote:



> Initial testing looks good. I'm going to run through a few testing
> cycles to see how things look.

The unit tests runs are cleaner than they have been for a long time. I'm
not seeing anything that gives me cause for concern.

I'm intending to tag later today.

Mark

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



Re: adding new JMX attributes

2019-06-04 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Eugéne,

On 6/4/19 08:03, Eugène Adell wrote:
> Hi guys,
> 
> I started to investigate how I could add 2 new JMX attributes, and 
> that doesn't look very difficult even for someone who doesn't look
> at Tomcat's source code often.
> 
> My suggestion would be to add these 2 new attributes 
> (authenticationSucceeded and authenticationFailed) to all Realms,
> then one could monitor suspicious activity without any access to
> the log files. It is just in a monitoring perspective, not to
> change the behavior for any user as the LockOutRealm is doing.
> 
> What do you think ?

What are the data types? When are they updated? What about meta-realms
such as LockOutRealm? How should they behave?

Do you want to be able to set/reset them?

I'm (slowly) working on a scheme where you can register a listener for
authentication failed/succeeded events. Would that work for you as
well, or is JMX a lot more convenient for you?

- -chris
-BEGIN PGP SIGNATURE-
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlz2o4EACgkQHPApP6U8
pFhXcQ/+OG93S1MtqMmRRzlsyuz4DQauAVi9BZ9K8HAcPfnYTympS3BnjGkWBIcv
8zctQbqntMDfHfLjvM3n5FHhf9CO+x2lIKZQ3HFPnfL+FiGMhfassm/u9RDy7zub
Io4MnvrEUhAqRTp5NqNTlh6VWVt88EywYOC3HhsA6w6Y584z+v7i9S+Orp9iuFiV
/PaolzwaCNK6ZQurUs5lZo58uc8ByC/yJAuB1TysHhtNzFK90kakUQN8TJRZIzk8
lQcyJvS88vZhx46oJ/pt5nkpaAdcIQtp7+OolkEaYVF+ei75aYYVtJ+LZLSldc2u
6wvFMjUwBf5o6A/mQBmNyGb39aWUwROouszr8cg4IAJ/5MHi+oV6bkD/KAk3jW67
eKAg/bRdRDQnQoOYzCVdTiL9XPI5eY8kw2uTbZ/DwdSTJ6rJKLjmzNdM37aCWWww
C6PVIoBDH6TrcVxOwq/xmZqkkJ6NMgpFp+EWRFQHYAXKHC/hS9nCAWTMGQ0Pw8QC
ei5RdTQs0S66wZd0SupXTx4kmBmYmtxLPUmXS6qTVUi+0h0xDToNwYb+pPKS048t
D4Oyrn7zoKXJwLL2Zm1TY8g9xsAtXKOvi9kA5ITgZL3eBKHydwjYZxUXiw1mlo5v
QZaLpLPIyEbqxQCHlqStCNRi91jRr7ACFoWz3xwgBu4gmEhDosw=
=NTij
-END PGP SIGNATURE-

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



buildbot success in on tomcat-7-trunk

2019-06-04 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-7-trunk while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-7-trunk/builds/1351

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

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-7-commit' 
triggered this build
Build Source Stamp: [branch 7.0.x] 33d28e9ff0dd9ae6d9fa09486d0df00dabd7e2b8
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



Re: [tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread Mark Thomas
On 04/06/2019 15:29, Rémy Maucherat wrote:
> On Tue, Jun 4, 2019 at 3:46 PM Mark Thomas 

> > My plan is to tackle the 5_3 issue after the async flush issue.
> 
> Starting this now.
> 
> 
> I can barely get it anymore (despite the parametrization loop), so it
> will be very difficult to verify any fix. This was a "Timeout waiting
> for allocation" with stream 19 or 21 in testWeighting.
> I will continue testing and investigating.

I've fixed a potential cause.

Initial testing looks good. I'm going to run through a few testing
cycles to see how things look.

Mark

-
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: Clear waitFor earlier. Avoid multiple stream.notify() calls and timeouts

2019-06-04 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 1174ecc  Clear waitFor earlier. Avoid multiple stream.notify() calls 
and timeouts
1174ecc is described below

commit 1174ecc8c8ac41e7888ae3ab0e7f133ddac07d9c
Author: Mark Thomas 
AuthorDate: Tue Jun 4 17:21:18 2019 +0100

Clear waitFor earlier. Avoid multiple stream.notify() calls and timeouts
---
 java/org/apache/coyote/http2/WindowAllocationManager.java | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 56acab9..da7aebe 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -133,8 +133,6 @@ class WindowAllocationManager {
 } else {
 stream.wait(timeout);
 }
-
-waitingFor = NONE;
 }
 }
 
@@ -163,6 +161,12 @@ class WindowAllocationManager {
 
 synchronized (stream) {
 if ((notifyTarget & waitingFor) > NONE) {
+// Reset this here so multiple notifies (possible with a
+// backlog containing multiple streams and small window 
updates)
+// are handled correctly (only the first should trigger a call
+// to stream.notify(). Additional notify() calls may trigger
+// unexpected timeouts.
+waitingFor = NONE;
 if (stream.getCoyoteResponse().getWriteListener() == null) {
 // Blocking, so use notify to release StreamOutputBuffer
 if (log.isDebugEnabled()) {
@@ -171,7 +175,6 @@ class WindowAllocationManager {
 }
 stream.notify();
 } else {
-waitingFor = NONE;
 // Non-blocking so dispatch
 if (log.isDebugEnabled()) {
 
log.debug(sm.getString("windowAllocationManager.dispatched",


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



[tomcat] branch master updated: Clear waitFor earlier. Avoid multiple stream.notify() calls and timeouts

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 8571748  Clear waitFor earlier. Avoid multiple stream.notify() calls 
and timeouts
8571748 is described below

commit 85717480affd7ca286b48e225a495ce18cad0743
Author: Mark Thomas 
AuthorDate: Tue Jun 4 17:21:18 2019 +0100

Clear waitFor earlier. Avoid multiple stream.notify() calls and timeouts
---
 java/org/apache/coyote/http2/WindowAllocationManager.java | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 56acab9..da7aebe 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -133,8 +133,6 @@ class WindowAllocationManager {
 } else {
 stream.wait(timeout);
 }
-
-waitingFor = NONE;
 }
 }
 
@@ -163,6 +161,12 @@ class WindowAllocationManager {
 
 synchronized (stream) {
 if ((notifyTarget & waitingFor) > NONE) {
+// Reset this here so multiple notifies (possible with a
+// backlog containing multiple streams and small window 
updates)
+// are handled correctly (only the first should trigger a call
+// to stream.notify(). Additional notify() calls may trigger
+// unexpected timeouts.
+waitingFor = NONE;
 if (stream.getCoyoteResponse().getWriteListener() == null) {
 // Blocking, so use notify to release StreamOutputBuffer
 if (log.isDebugEnabled()) {
@@ -171,7 +175,6 @@ class WindowAllocationManager {
 }
 stream.notify();
 } else {
-waitingFor = NONE;
 // Non-blocking so dispatch
 if (log.isDebugEnabled()) {
 
log.debug(sm.getString("windowAllocationManager.dispatched",


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



buildbot success in on tomcat-85-trunk

2019-06-04 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-85-trunk while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-85-trunk/builds/1790

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

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-85-commit' 
triggered this build
Build Source Stamp: [branch 8.5.x] a7386ee2d6850c77e494852289107c71f6f24b91
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



[tomcat] branch 8.5.x updated: Clean-up

2019-06-04 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 dacb1bc  Clean-up
dacb1bc is described below

commit dacb1bc0d156c25a865c026bcbca3c71d3afe9e9
Author: Mark Thomas 
AuthorDate: Tue Jun 4 16:38:15 2019 +0100

Clean-up
---
 java/javax/servlet/http/HttpServlet.java | 1 -
 1 file changed, 1 deletion(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 9f3fe92..f7ea58a 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -593,7 +593,6 @@ public abstract class HttpServlet extends GenericServlet {
 ServletOutputStream out = resp.getOutputStream();
 out.print(buffer.toString());
 out.close();
-return;
 }
 
 


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



[tomcat] branch 7.0.x updated: Trivial commit to trigger CI

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/7.0.x by this push:
 new 33d28e9  Trivial commit to trigger CI
33d28e9 is described below

commit 33d28e9ff0dd9ae6d9fa09486d0df00dabd7e2b8
Author: Mark Thomas 
AuthorDate: Tue Jun 4 16:37:51 2019 +0100

Trivial commit to trigger CI

Cosmetic / trivial changes to reduce 8.5.x / 7.0.x diff
---
 java/javax/servlet/http/HttpServlet.java | 15 ++-
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 0fd2751..8478e4c 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -70,8 +70,6 @@ import javax.servlet.ServletResponse;
  * http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html;>
  * Java Tutorial on Multithreaded Programming for more
  * information on handling multiple threads in a Java program.
- *
- * @author  Various
  */
 public abstract class HttpServlet extends GenericServlet {
 
@@ -90,7 +88,7 @@ public abstract class HttpServlet extends GenericServlet {
 
 private static final String LSTRING_FILE =
 "javax.servlet.http.LocalStrings";
-private static ResourceBundle lStrings =
+private static final ResourceBundle lStrings =
 ResourceBundle.getBundle(LSTRING_FILE);
 
 
@@ -582,7 +580,6 @@ public abstract class HttpServlet extends GenericServlet {
 ServletOutputStream out = resp.getOutputStream();
 out.print(buffer.toString());
 out.close();
-return;
 }
 
 
@@ -741,9 +738,9 @@ public abstract class HttpServlet extends GenericServlet {
  */
 // file private
 class NoBodyResponse extends HttpServletResponseWrapper {
-private NoBodyOutputStreamnoBody;
-private PrintWriterwriter;
-private booleandidSetContentLength;
+private final NoBodyOutputStream noBody;
+private PrintWriter writer;
+private boolean didSetContentLength;
 
 // file private
 NoBodyResponse(HttpServletResponse r) {
@@ -828,10 +825,10 @@ class NoBodyOutputStream extends ServletOutputStream {
 
 private static final String LSTRING_FILE =
 "javax.servlet.http.LocalStrings";
-private static ResourceBundle lStrings =
+private static final ResourceBundle lStrings =
 ResourceBundle.getBundle(LSTRING_FILE);
 
-private intcontentLength = 0;
+private int contentLength = 0;
 
 // file private
 NoBodyOutputStream() {


-
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: Revert unnecessary back-port

2019-06-04 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 a7386ee  Revert unnecessary back-port
a7386ee is described below

commit a7386ee2d6850c77e494852289107c71f6f24b91
Author: Mark Thomas 
AuthorDate: Tue Jun 4 16:28:18 2019 +0100

Revert unnecessary back-port
---
 java/org/apache/coyote/AbstractProtocol.java   | 7 ---
 .../apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java   | 4 
 2 files changed, 11 deletions(-)

diff --git a/java/org/apache/coyote/AbstractProtocol.java 
b/java/org/apache/coyote/AbstractProtocol.java
index 4cbda42..837f805 100644
--- a/java/org/apache/coyote/AbstractProtocol.java
+++ b/java/org/apache/coyote/AbstractProtocol.java
@@ -35,7 +35,6 @@ import javax.management.ObjectName;
 import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.WebConnection;
 
-import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.InstanceManager;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -861,12 +860,6 @@ public abstract class AbstractProtocol implements 
ProtocolHandler,
 
upgradeToken.getContextBind().unbind(false, oldCL);
 }
 }
-if (httpUpgradeHandler instanceof 
InternalHttpUpgradeHandler) {
-if (((InternalHttpUpgradeHandler) 
httpUpgradeHandler).hasAsyncIO()) {
-// The handler will initiate all further 
I/O
-state = SocketState.LONG;
-}
-}
 }
 }
 } while ( state == SocketState.UPGRADING);
diff --git 
a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java 
b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
index 8c5ce39..936784e 100644
--- a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
+++ b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
@@ -37,8 +37,4 @@ public interface InternalHttpUpgradeHandler extends 
HttpUpgradeHandler {
 void setSslSupport(SSLSupport sslSupport);
 
 void pause();
-
-default boolean hasAsyncIO() {
-return false;
-}
 }
\ No newline at end of file


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



Re: [tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread Rémy Maucherat
On Tue, Jun 4, 2019 at 3:46 PM Mark Thomas  wrote:

> On 04/06/2019 12:25, Mark Thomas wrote:
> > On 04/06/2019 12:17, r...@apache.org wrote:
> >> This is an automated email from the ASF dual-hosted git repository.
> >>
> >> remm pushed a commit to branch master
> >> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> >>
> >>
> >> The following commit(s) were added to refs/heads/master by this push:
> >>  new 2eb2d84  Add fake parameters on two tests which (rarely) fail
> for me
> >> 2eb2d84 is described below
> >>
> >> commit 2eb2d843f68b9b224f5d8457f340c9bd1e9240c9
> >> Author: remm 
> >> AuthorDate: Tue Jun 4 13:17:44 2019 +0200
> >>
> >> Add fake parameters on two tests which (rarely) fail for me
> >>
> >> 5_3 has a timeout problem.
> >> Async flush has a window update manager waitForNonBlocking ISE
> problem.
> >> This should make problems far easier to detect.
> >
> > Thanks for testing my latest patch. I am going to apply it as I think it
> > is heading in the right direction.
>
> Done.
>
> > I'm currently looking at the debug logs for the async flush issue. I've
> > made progress tracing it back but I haven't quite got to the root cause.
>
> This should be fixed as well. Looks like a long-standing bug in
> flush(boolean).
>

I agree, my debug showed concurrent traces dealing exclusively with
"legacy" output stream flushes, one caused by response commit and the other
one by the flush at the start of doing onWritePossible.
The item I was looking at first to solve it is the FIXME line 65 of
StreamProcessor, but indeed any more "efficient" sync will deadlock in
various tests.

>
> > My plan is to tackle the 5_3 issue after the async flush issue.
>
> Starting this now.
>

I can barely get it anymore (despite the parametrization loop), so it will
be very difficult to verify any fix. This was a "Timeout waiting for
allocation" with stream 19 or 21 in testWeighting.
I will continue testing and investigating.

04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-4]
org.apache.coyote.http2.WindowAllocationManager.waitForConnection
Connection [5], Stream [21], Waiting for Connection flow control window
(blocking) with timeout [6000]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [21], Notified
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.incrementWindowSize Connection
[5], Stream [19] released from backlog
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [19], Waiting type [2], Notify type [2]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [19], Notified
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.upgradeDispatch Entry,
Connection [5], SocketStatus [OPEN_READ]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.init Connection [5], State
[CONNECTED]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.AbstractStream.decrementWindowSize Connection [5],
Stream [0], reduce flow control window by [256] to [-1]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.Http2AsyncUpgradeHandler.writeBody Connection [5],
Stream [19], Data length [256]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.upgradeDispatch Exit,
Connection [5], SocketState [UPGRADED]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.WindowAllocationManager.waitForConnection
Connection [5], Stream [19], Waiting for Connection flow control window
(blocking) with timeout [6000]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.validateFrame Connection [-1], Stream
[21], Frame type [DATA], Flags [0], Payload size [768]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.readDataFrame Connection [-1], Stream
[21], Data length, [768], Padding length [none]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.swallow Connection [-1], Stream [21],
Swallowed [768] bytes
04-Jun-2019 16:26:26.110 INFO [main]
org.apache.coyote.http2.TestHttp2Section_5_3.testWeighting 21-Body-768

04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.validateFrame Connection [-1], Stream
[19], Frame type [DATA], Flags [0], Payload size [256]
04-Jun-2019 16:26:26.111 FINE [main]
org.apache.coyote.http2.Http2Parser.readDataFrame Connection [-1], Stream
[19], Data length, [256], Padding length [none]
04-Jun-2019 16:26:26.111 FINE [http-nio2-127.0.0.1-auto-6-exec-4]

buildbot failure in on tomcat-85-trunk

2019-06-04 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-85-trunk while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-85-trunk/builds/1789

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

Buildslave for this Build: silvanus_ubuntu

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

BUILD FAILED: failed compile

Sincerely,
 -The Buildbot




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



[tomcat] branch master updated: Correct message parameters

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 9e4fc19  Correct message parameters
9e4fc19 is described below

commit 9e4fc1951f344d70c9db8ad722762d87932c4d1d
Author: Mark Thomas 
AuthorDate: Tue Jun 4 14:55:17 2019 +0100

Correct message parameters
---
 java/org/apache/coyote/http2/LocalStrings.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/coyote/http2/LocalStrings.properties 
b/java/org/apache/coyote/http2/LocalStrings.properties
index e7451fd..8805e98 100644
--- a/java/org/apache/coyote/http2/LocalStrings.properties
+++ b/java/org/apache/coyote/http2/LocalStrings.properties
@@ -161,8 +161,8 @@ upgradeHandler.writePushHeaders=Connection [{0}], Stream 
[{1}], Pushed stream [{
 windowAllocationManager.dispatched=Connection [{0}], Stream [{1}], Dispatched
 windowAllocationManager.notify=Connection [{0}], Stream [{1}], Waiting type 
[{2}], Notify type [{3}]
 windowAllocationManager.notified=Connection [{0}], Stream [{1}], Notified
-windowAllocationManager.waitFor.connection=Connection [{0}], Stream [{1}], 
Waiting for Connection flow control window (blocking) with timeout [{3}]
-windowAllocationManager.waitFor.stream=Connection [{0}], Stream [{1}], Waiting 
for Stream flow control window (blocking) with timeout [{3}]
+windowAllocationManager.waitFor.connection=Connection [{0}], Stream [{1}], 
Waiting for Connection flow control window (blocking) with timeout [{2}]
+windowAllocationManager.waitFor.stream=Connection [{0}], Stream [{1}], Waiting 
for Stream flow control window (blocking) with timeout [{2}]
 windowAllocationManager.waitFor.ise=Connection [{0}], Stream [{1}], Already 
waiting
 windowAllocationManager.waitForNonBlocking.connection=Connection [{0}], Stream 
[{1}], Waiting for Connection flow control window (non-blocking)
 windowAllocationManager.waitForNonBlocking.stream=Connection [{0}], Stream 
[{1}], Waiting for Stream flow control window (non-blocking)


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



Re: [tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread Mark Thomas
On 04/06/2019 12:25, Mark Thomas wrote:
> On 04/06/2019 12:17, r...@apache.org wrote:
>> This is an automated email from the ASF dual-hosted git repository.
>>
>> remm pushed a commit to branch master
>> in repository https://gitbox.apache.org/repos/asf/tomcat.git
>>
>>
>> The following commit(s) were added to refs/heads/master by this push:
>>  new 2eb2d84  Add fake parameters on two tests which (rarely) fail for me
>> 2eb2d84 is described below
>>
>> commit 2eb2d843f68b9b224f5d8457f340c9bd1e9240c9
>> Author: remm 
>> AuthorDate: Tue Jun 4 13:17:44 2019 +0200
>>
>> Add fake parameters on two tests which (rarely) fail for me
>> 
>> 5_3 has a timeout problem.
>> Async flush has a window update manager waitForNonBlocking ISE problem.
>> This should make problems far easier to detect.
> 
> Thanks for testing my latest patch. I am going to apply it as I think it
> is heading in the right direction.

Done.

> I'm currently looking at the debug logs for the async flush issue. I've
> made progress tracing it back but I haven't quite got to the root cause.

This should be fixed as well. Looks like a long-standing bug in
flush(boolean).

> My plan is to tackle the 5_3 issue after the async flush issue.

Starting this now.

Meanwhile I'm going to set the unit tests running on OSX and Windows as
a double check.

Mark


-
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: Ensure flush(boolean) returns true when data remains to be written

2019-06-04 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 9d28ac5  Ensure flush(boolean) returns true when data remains to be 
written
9d28ac5 is described below

commit 9d28ac5240b896110d3d3b7d66bf1fc5a37ca1e0
Author: Mark Thomas 
AuthorDate: Tue Jun 4 14:36:58 2019 +0100

Ensure flush(boolean) returns true when data remains to be written

Incorrectly returning false will lead to a further write which in some
circumstances could lead to threads attempting to write concurrently.
---
 java/org/apache/coyote/http2/Stream.java | 4 +++-
 webapps/docs/changelog.xml   | 5 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index cc76200..a25edfe 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -868,7 +868,9 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 flushed = true;
 }
 
-if (!dataInBuffer) {
+if (dataInBuffer) {
+dataLeft = true;
+} else {
 if (writeBuffer.isEmpty()) {
 // Both buffer and writeBuffer are empty.
 if (flushed) {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9c9c838..ebaedc5 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -96,6 +96,11 @@
 Add support for same-site cookie attribute. Patch provided by John
 Kelly. (markt)
   
+  
+Correct a bug in the stream flushing code that could lead to multiple
+threads processing the stream concurrently which in turn could cause
+errors processing the stream. (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 (3bc67c0 -> 383a5d1)

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


from 3bc67c0  Refactor Stream / Connection flow control window allocation
 new d121a2e  Fix typo
 new 3428c42  Use NONE instead of 0.
 new 383a5d1  Fix one potential cause of multiple threads processing a 
connection.

The 3 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/coyote/AbstractProtocol.java   |  7 +++
 .../coyote/http11/upgrade/InternalHttpUpgradeHandler.java  |  4 
 java/org/apache/coyote/http2/Http2UpgradeHandler.java  |  2 +-
 java/org/apache/coyote/http2/LocalStrings.properties   |  2 +-
 java/org/apache/coyote/http2/WindowAllocationManager.java  | 10 +-
 5 files changed, 18 insertions(+), 7 deletions(-)


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



[tomcat] 03/03: Fix one potential cause of multiple threads processing a connection.

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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

commit 383a5d11cb47183d7a98e2141f69929e95d9b835
Author: Mark Thomas 
AuthorDate: Tue Jun 4 12:30:33 2019 +0100

Fix one potential cause of multiple threads processing a connection.

If an InternalUpgradeHandler supports async I/O it will initiate further
I/O so ensure the Protocol loop exists and the socket is put into the
long poll state.
---
 java/org/apache/coyote/AbstractProtocol.java   | 7 +++
 .../apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java   | 4 
 java/org/apache/coyote/http2/Http2UpgradeHandler.java  | 2 +-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/AbstractProtocol.java 
b/java/org/apache/coyote/AbstractProtocol.java
index 837f805..4cbda42 100644
--- a/java/org/apache/coyote/AbstractProtocol.java
+++ b/java/org/apache/coyote/AbstractProtocol.java
@@ -35,6 +35,7 @@ import javax.management.ObjectName;
 import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.WebConnection;
 
+import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.InstanceManager;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -860,6 +861,12 @@ public abstract class AbstractProtocol implements 
ProtocolHandler,
 
upgradeToken.getContextBind().unbind(false, oldCL);
 }
 }
+if (httpUpgradeHandler instanceof 
InternalHttpUpgradeHandler) {
+if (((InternalHttpUpgradeHandler) 
httpUpgradeHandler).hasAsyncIO()) {
+// The handler will initiate all further 
I/O
+state = SocketState.LONG;
+}
+}
 }
 }
 } while ( state == SocketState.UPGRADING);
diff --git 
a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java 
b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
index 936784e..8c5ce39 100644
--- a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
+++ b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
@@ -37,4 +37,8 @@ public interface InternalHttpUpgradeHandler extends 
HttpUpgradeHandler {
 void setSslSupport(SSLSupport sslSupport);
 
 void pause();
+
+default boolean hasAsyncIO() {
+return false;
+}
 }
\ No newline at end of file
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index cbfbd3b..4bcb884 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -826,7 +826,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 // Close the stream (in app code so need to
 // signal to app stream is closing)
 stream.doWriteTimeout();
-}
+}
 } catch (InterruptedException e) {
 throw new IOException(sm.getString(
 
"upgradeHandler.windowSizeReservationInterrupted", connectionId,


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



[tomcat] branch master updated: Ensure flush(boolean) returns true when data remains to be written

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 092a899  Ensure flush(boolean) returns true when data remains to be 
written
092a899 is described below

commit 092a8995d94f2b56441d7446d93e91ee137ba3cf
Author: Mark Thomas 
AuthorDate: Tue Jun 4 14:36:58 2019 +0100

Ensure flush(boolean) returns true when data remains to be written

Incorrectly returning false will lead to a further write which in some
circumstances could lead to threads attempting to write concurrently.
---
 java/org/apache/coyote/http2/Stream.java | 4 +++-
 webapps/docs/changelog.xml   | 5 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index b70c227..3de2b9f 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -887,7 +887,9 @@ class Stream extends AbstractStream implements 
HeaderEmitter {
 flushed = true;
 }
 
-if (!dataInBuffer) {
+if (dataInBuffer) {
+dataLeft = true;
+} else {
 if (writeBuffer.isEmpty()) {
 // Both buffer and writeBuffer are empty.
 if (flushed) {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7701241..7154236 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -175,6 +175,11 @@
   
 Fix HTTP/2 end of stream concurrency with async. (remm)
   
+  
+Correct a bug in the stream flushing code that could lead to multiple
+threads processing the stream concurrently which in turn could cause
+errors processing the stream. (markt)
+  
 
   
   


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



[tomcat] 01/03: Fix typo

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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

commit d121a2ecf88ec65168cad82a9fc53a0474f31a21
Author: Mark Thomas 
AuthorDate: Tue Jun 4 09:32:43 2019 +0100

Fix typo
---
 java/org/apache/coyote/http2/LocalStrings.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/LocalStrings.properties 
b/java/org/apache/coyote/http2/LocalStrings.properties
index 47d8c3a..54ce058 100644
--- a/java/org/apache/coyote/http2/LocalStrings.properties
+++ b/java/org/apache/coyote/http2/LocalStrings.properties
@@ -161,7 +161,7 @@ windowAllocationManager.waitFor.connection=Connection 
[{0}], Stream [{1}], Waiti
 windowAllocationManager.waitFor.stream=Connection [{0}], Stream [{1}], Waiting 
for Stream flow control window (blocking) with timeout [{3}]
 windowAllocationManager.waitFor.ise=Connection [{0}], Stream [{1}], Already 
waiting
 windowAllocationManager.waitForNonBlocking.connection=Connection [{0}], Stream 
[{1}], Waiting for Connection flow control window (non-blocking)
-windowAllocationManager.waitForNonBlocking.stram=Connection [{0}], Stream 
[{1}], Waiting for Stream flow control window (non-blocking)
+windowAllocationManager.waitForNonBlocking.stream=Connection [{0}], Stream 
[{1}], Waiting for Stream flow control window (non-blocking)
 
 writeStateMachine.endWrite.ise=It is illegal to specify [{0}] for the new 
state once a write has completed
 writeStateMachine.ise=It is illegal to call [{0}()] in state [{1}]


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



[tomcat] 02/03: Use NONE instead of 0.

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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

commit 3428c426c37c907258b4217127409170f9ecca14
Author: remm 
AuthorDate: Tue Jun 4 10:58:24 2019 +0200

Use NONE instead of 0.
---
 java/org/apache/coyote/http2/WindowAllocationManager.java | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 7626bf3..56acab9 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -121,7 +121,7 @@ class WindowAllocationManager {
 
 private void waitFor(int waitTarget, long timeout) throws 
InterruptedException {
 synchronized (stream) {
-if (waitingFor != 0) {
+if (waitingFor != NONE) {
 throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
 stream.getConnectionId(), stream.getIdentifier()));
 }
@@ -134,14 +134,14 @@ class WindowAllocationManager {
 stream.wait(timeout);
 }
 
-waitingFor = 0;
+waitingFor = NONE;
 }
 }
 
 
 private void waitForNonBlocking(int waitTarget) {
 synchronized (stream) {
-if (waitingFor == 0) {
+if (waitingFor == NONE) {
 waitingFor = waitTarget;
 } else if (waitingFor == waitTarget) {
 // NO-OP
@@ -162,7 +162,7 @@ class WindowAllocationManager {
 }
 
 synchronized (stream) {
-if ((notifyTarget & waitingFor) > 0) {
+if ((notifyTarget & waitingFor) > NONE) {
 if (stream.getCoyoteResponse().getWriteListener() == null) {
 // Blocking, so use notify to release StreamOutputBuffer
 if (log.isDebugEnabled()) {
@@ -171,7 +171,7 @@ class WindowAllocationManager {
 }
 stream.notify();
 } else {
-waitingFor = 0;
+waitingFor = NONE;
 // Non-blocking so dispatch
 if (log.isDebugEnabled()) {
 
log.debug(sm.getString("windowAllocationManager.dispatched",


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



adding new JMX attributes

2019-06-04 Thread Eugène Adell
Hi guys,

I started to investigate how I could add 2 new JMX attributes, and
that doesn't look very difficult even for someone who doesn't look at
Tomcat's source code often.

My suggestion would be to add these 2 new attributes
(authenticationSucceeded and authenticationFailed) to all Realms, then
one could monitor suspicious activity without any access to the log
files. It is just in a monitoring perspective, not to change the
behavior for any user as the LockOutRealm is doing.

What do you think ?

best regards
Eugene Adell.

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



[tomcat] branch master updated: Fix one potential cause of multiple threads processing a connection.

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 2236835  Fix one potential cause of multiple threads processing a 
connection.
2236835 is described below

commit 223683574d33d980edf0ff0431cf55eba2ab7d53
Author: Mark Thomas 
AuthorDate: Tue Jun 4 12:30:33 2019 +0100

Fix one potential cause of multiple threads processing a connection.

If an InternalUpgradeHandler supports async I/O it will initiate further
I/O so ensure the Protocol loop exists and the socket is put into the
long poll state.
---
 java/org/apache/coyote/AbstractProtocol.java   | 7 +++
 .../apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java   | 4 
 java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java | 4 +++-
 java/org/apache/coyote/http2/Http2UpgradeHandler.java  | 7 +--
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/coyote/AbstractProtocol.java 
b/java/org/apache/coyote/AbstractProtocol.java
index c6df8d6..174c899 100644
--- a/java/org/apache/coyote/AbstractProtocol.java
+++ b/java/org/apache/coyote/AbstractProtocol.java
@@ -39,6 +39,7 @@ import javax.management.ObjectName;
 import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.WebConnection;
 
+import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.InstanceManager;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -904,6 +905,12 @@ public abstract class AbstractProtocol implements 
ProtocolHandler,
 
upgradeToken.getContextBind().unbind(false, oldCL);
 }
 }
+if (httpUpgradeHandler instanceof 
InternalHttpUpgradeHandler) {
+if (((InternalHttpUpgradeHandler) 
httpUpgradeHandler).hasAsyncIO()) {
+// The handler will initiate all further 
I/O
+state = SocketState.LONG;
+}
+}
 }
 }
 } while ( state == SocketState.UPGRADING);
diff --git 
a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java 
b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
index 936784e..8c5ce39 100644
--- a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
+++ b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
@@ -37,4 +37,8 @@ public interface InternalHttpUpgradeHandler extends 
HttpUpgradeHandler {
 void setSslSupport(SSLSupport sslSupport);
 
 void pause();
+
+default boolean hasAsyncIO() {
+return false;
+}
 }
\ No newline at end of file
diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
index fde2bb6..969bfda 100644
--- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
@@ -80,11 +80,13 @@ public class Http2AsyncUpgradeHandler extends 
Http2UpgradeHandler {
 return new AsyncPingManager();
 }
 
+
 @Override
-boolean hasAsyncIO() {
+public boolean hasAsyncIO() {
 return true;
 }
 
+
 @Override
 protected void processConnection(WebConnection webConnection,
 Stream stream) {
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index 665b1a0..71a5c1b 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -730,11 +730,6 @@ class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpUpgradeH
 }
 
 
-boolean hasAsyncIO() {
-return false;
-}
-
-
 protected void processWrites() throws IOException {
 synchronized (socketWrapper) {
 if (socketWrapper.flush(false)) {
@@ -822,7 +817,7 @@ class Http2UpgradeHandler extends AbstractStream implements 
InternalHttpUpgradeH
 // Close the stream (in app code so need to
 // signal to app stream is closing)
 stream.doWriteTimeout();
-}
+}
 } catch (InterruptedException e) {
 throw new IOException(sm.getString(
 
"upgradeHandler.windowSizeReservationInterrupted", connectionId,


-
To unsubscribe, e-mail: 

Re: [tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread Mark Thomas
On 04/06/2019 12:17, r...@apache.org wrote:
> This is an automated email from the ASF dual-hosted git repository.
> 
> remm pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> 
> 
> The following commit(s) were added to refs/heads/master by this push:
>  new 2eb2d84  Add fake parameters on two tests which (rarely) fail for me
> 2eb2d84 is described below
> 
> commit 2eb2d843f68b9b224f5d8457f340c9bd1e9240c9
> Author: remm 
> AuthorDate: Tue Jun 4 13:17:44 2019 +0200
> 
> Add fake parameters on two tests which (rarely) fail for me
> 
> 5_3 has a timeout problem.
> Async flush has a window update manager waitForNonBlocking ISE problem.
> This should make problems far easier to detect.

Thanks for testing my latest patch. I am going to apply it as I think it
is heading in the right direction.

I'm currently looking at the debug logs for the async flush issue. I've
made progress tracing it back but I haven't quite got to the root cause.

My plan is to tackle the 5_3 issue after the async flush issue.

Mark


> ---
>  test/org/apache/coyote/http2/TestAsyncFlush.java   | 8 
>  test/org/apache/coyote/http2/TestHttp2Section_5_3.java | 8 
>  2 files changed, 16 insertions(+)
> 
> diff --git a/test/org/apache/coyote/http2/TestAsyncFlush.java 
> b/test/org/apache/coyote/http2/TestAsyncFlush.java
> index 8de4c54..3c4373b 100644
> --- a/test/org/apache/coyote/http2/TestAsyncFlush.java
> +++ b/test/org/apache/coyote/http2/TestAsyncFlush.java
> @@ -28,6 +28,8 @@ import javax.servlet.http.HttpServletResponse;
>  
>  import org.junit.Assert;
>  import org.junit.Test;
> +import org.junit.runner.RunWith;
> +import org.junit.runners.Parameterized;
>  
>  import org.apache.catalina.Context;
>  import org.apache.catalina.Wrapper;
> @@ -46,8 +48,14 @@ import org.apache.catalina.startup.Tomcat;
>   *   while the specification allows this to work - it doesn't require 
> that
>   *   it does work.
>   */
> +@RunWith(Parameterized.class)
>  public class TestAsyncFlush extends Http2TestBase {
>  
> +@Parameterized.Parameters
> +public static Object[][] data() {
> +return new Object[10][0];
> +}
> +
>  private static final int BLOCK_SIZE = 1024;
>  
>  @Test
> diff --git a/test/org/apache/coyote/http2/TestHttp2Section_5_3.java 
> b/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
> index a0bcbaf..64e86de 100644
> --- a/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
> +++ b/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
> @@ -18,6 +18,8 @@ package org.apache.coyote.http2;
>  
>  import org.junit.Assert;
>  import org.junit.Test;
> +import org.junit.runner.RunWith;
> +import org.junit.runners.Parameterized;
>  
>  /**
>   * Unit tests for Section 5.3 of
> @@ -29,8 +31,14 @@ import org.junit.Test;
>   * Note: Unit tests for the examples described by each of the figures may be
>   * found in {@link TestAbstractStream}.
>   */
> +@RunWith(Parameterized.class)
>  public class TestHttp2Section_5_3 extends Http2TestBase {
>  
> +@Parameterized.Parameters
> +public static Object[][] data() {
> +return new Object[10][0];
> +}
> +
>  // Section 5.3.1
>  
>  @Test
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


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



[tomcat] branch master updated: Add fake parameters on two tests which (rarely) fail for me

2019-06-04 Thread remm
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 2eb2d84  Add fake parameters on two tests which (rarely) fail for me
2eb2d84 is described below

commit 2eb2d843f68b9b224f5d8457f340c9bd1e9240c9
Author: remm 
AuthorDate: Tue Jun 4 13:17:44 2019 +0200

Add fake parameters on two tests which (rarely) fail for me

5_3 has a timeout problem.
Async flush has a window update manager waitForNonBlocking ISE problem.
This should make problems far easier to detect.
---
 test/org/apache/coyote/http2/TestAsyncFlush.java   | 8 
 test/org/apache/coyote/http2/TestHttp2Section_5_3.java | 8 
 2 files changed, 16 insertions(+)

diff --git a/test/org/apache/coyote/http2/TestAsyncFlush.java 
b/test/org/apache/coyote/http2/TestAsyncFlush.java
index 8de4c54..3c4373b 100644
--- a/test/org/apache/coyote/http2/TestAsyncFlush.java
+++ b/test/org/apache/coyote/http2/TestAsyncFlush.java
@@ -28,6 +28,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Wrapper;
@@ -46,8 +48,14 @@ import org.apache.catalina.startup.Tomcat;
  *   while the specification allows this to work - it doesn't require that
  *   it does work.
  */
+@RunWith(Parameterized.class)
 public class TestAsyncFlush extends Http2TestBase {
 
+@Parameterized.Parameters
+public static Object[][] data() {
+return new Object[10][0];
+}
+
 private static final int BLOCK_SIZE = 1024;
 
 @Test
diff --git a/test/org/apache/coyote/http2/TestHttp2Section_5_3.java 
b/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
index a0bcbaf..64e86de 100644
--- a/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
+++ b/test/org/apache/coyote/http2/TestHttp2Section_5_3.java
@@ -18,6 +18,8 @@ package org.apache.coyote.http2;
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * Unit tests for Section 5.3 of
@@ -29,8 +31,14 @@ import org.junit.Test;
  * Note: Unit tests for the examples described by each of the figures may be
  * found in {@link TestAbstractStream}.
  */
+@RunWith(Parameterized.class)
 public class TestHttp2Section_5_3 extends Http2TestBase {
 
+@Parameterized.Parameters
+public static Object[][] data() {
+return new Object[10][0];
+}
+
 // Section 5.3.1
 
 @Test


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



[tomcat] branch master updated: Revert ISE fix after review

2019-06-04 Thread remm
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 628ab62  Revert ISE fix after review
628ab62 is described below

commit 628ab627bd23edea5e80ff5b01958e9bfd4e16fa
Author: remm 
AuthorDate: Tue Jun 4 13:14:21 2019 +0200

Revert ISE fix after review
---
 .../coyote/http2/WindowAllocationManager.java  | 25 ++
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 3ddd742..56acab9 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -146,12 +146,11 @@ class WindowAllocationManager {
 } else if (waitingFor == waitTarget) {
 // NO-OP
 // Non-blocking post-processing may attempt to flush
-} else if ((waitTarget & waitingFor) == NONE) {
-waitingFor |= waitTarget;
 } else {
 throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
 stream.getConnectionId(), stream.getIdentifier()));
 }
+
 }
 }
 
@@ -172,19 +171,17 @@ class WindowAllocationManager {
 }
 stream.notify();
 } else {
-waitingFor &= ~notifyTarget;
-if (waitingFor == NONE) {
-// Non-blocking so dispatch
-if (log.isDebugEnabled()) {
-
log.debug(sm.getString("windowAllocationManager.dispatched",
-stream.getConnectionId(), 
stream.getIdentifier()));
-}
-
stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
-// Need to explicitly execute dispatches on the 
StreamProcessor
-// as this thread is being processed by an 
UpgradeProcessor
-// which won't see this dispatch
-
stream.getCoyoteResponse().action(ActionCode.DISPATCH_EXECUTE, null);
+waitingFor = NONE;
+// Non-blocking so dispatch
+if (log.isDebugEnabled()) {
+
log.debug(sm.getString("windowAllocationManager.dispatched",
+stream.getConnectionId(), 
stream.getIdentifier()));
 }
+
stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
+// Need to explicitly execute dispatches on the 
StreamProcessor
+// as this thread is being processed by an UpgradeProcessor
+// which won't see this dispatch
+
stream.getCoyoteResponse().action(ActionCode.DISPATCH_EXECUTE, null);
 }
 }
 }


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



Re: [tomcat] branch master updated: Fix rare ISE issue I see in TestAsyncFlush.NIO

2019-06-04 Thread Mark Thomas
On 04/06/2019 09:58, r...@apache.org wrote:
> This is an automated email from the ASF dual-hosted git repository.
> 
> remm pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> 
> 
> The following commit(s) were added to refs/heads/master by this push:
>  new a98f6d0  Fix rare ISE issue I see in TestAsyncFlush.NIO
> a98f6d0 is described below
> 
> commit a98f6d02bb92ded2b3b0cb5438fb7c8adb8d85f9
> Author: remm 
> AuthorDate: Tue Jun 4 10:58:24 2019 +0200
> 
> Fix rare ISE issue I see in TestAsyncFlush.NIO
> 
> It looks possibly ok to me to wait on both allocation types with
> waitForNonBlocking (that's what the test runs into for me, both reach 0
> at the same time).

That is definitely not OK. It should never happen.

The sequence is:
- Request allocation from stream. In none available, wait until some is.
- Request allocation from connection. In none available, wait until some
  is.
- Then write.

It should be impossible for a Stream to be waiting for an allocation
from the Stream and the Connection.

Mark


> Also use NONE instead of 0.
> Tests pass for me, so trying with CI.
> ---
>  .../coyote/http2/WindowAllocationManager.java  | 34 
> +++---
>  1 file changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
> b/java/org/apache/coyote/http2/WindowAllocationManager.java
> index 7626bf3..6510312 100644
> --- a/java/org/apache/coyote/http2/WindowAllocationManager.java
> +++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
> @@ -121,7 +121,7 @@ class WindowAllocationManager {
>  
>  private void waitFor(int waitTarget, long timeout) throws 
> InterruptedException {
>  synchronized (stream) {
> -if (waitingFor != 0) {
> +if (waitingFor != NONE) {
>  throw new 
> IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
>  stream.getConnectionId(), stream.getIdentifier()));
>  }
> @@ -134,23 +134,21 @@ class WindowAllocationManager {
>  stream.wait(timeout);
>  }
>  
> -waitingFor = 0;
> +waitingFor = NONE;
>  }
>  }
>  
>  
>  private void waitForNonBlocking(int waitTarget) {
>  synchronized (stream) {
> -if (waitingFor == 0) {
> +if (waitingFor == NONE) {
>  waitingFor = waitTarget;
>  } else if (waitingFor == waitTarget) {
>  // NO-OP
>  // Non-blocking post-processing may attempt to flush
>  } else {
> -throw new 
> IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
> -stream.getConnectionId(), stream.getIdentifier()));
> +waitingFor |= waitTarget;
>  }
> -
>  }
>  }
>  
> @@ -162,7 +160,7 @@ class WindowAllocationManager {
>  }
>  
>  synchronized (stream) {
> -if ((notifyTarget & waitingFor) > 0) {
> +if ((notifyTarget & waitingFor) > NONE) {
>  if (stream.getCoyoteResponse().getWriteListener() == null) {
>  // Blocking, so use notify to release StreamOutputBuffer
>  if (log.isDebugEnabled()) {
> @@ -171,17 +169,19 @@ class WindowAllocationManager {
>  }
>  stream.notify();
>  } else {
> -waitingFor = 0;
> -// Non-blocking so dispatch
> -if (log.isDebugEnabled()) {
> -
> log.debug(sm.getString("windowAllocationManager.dispatched",
> -stream.getConnectionId(), 
> stream.getIdentifier()));
> +waitingFor &= ~notifyTarget;
> +if (waitingFor == NONE) {
> +// Non-blocking so dispatch
> +if (log.isDebugEnabled()) {
> +
> log.debug(sm.getString("windowAllocationManager.dispatched",
> +stream.getConnectionId(), 
> stream.getIdentifier()));
> +}
> +
> stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
> +// Need to explicitly execute dispatches on the 
> StreamProcessor
> +// as this thread is being processed by an 
> UpgradeProcessor
> +// which won't see this dispatch
> +
> stream.getCoyoteResponse().action(ActionCode.DISPATCH_EXECUTE, null);
>  }
> -
> stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
> -// Need to explicitly execute dispatches on the 
> StreamProcessor
> -// as this thread is being 

Re: Tagging 9.0.x and 8.5.x

2019-06-04 Thread Rémy Maucherat
On Mon, Jun 3, 2019 at 11:40 PM Mark Thomas  wrote:

> http://people.apache.org/~markt/patches/2019-06-03-h2-v1.patch


I'm testing extensively, and this patch
http://people.apache.org/~markt/patches/2019-06-03-h2-v2.patch looks good
to me.

Rémy


[tomcat] branch master updated: Waiting for the same thing is still an error though

2019-06-04 Thread remm
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 71fcb34  Waiting for the same thing is still an error though
71fcb34 is described below

commit 71fcb34db252c1a7b9313053643ff8b986dd
Author: remm 
AuthorDate: Tue Jun 4 11:11:08 2019 +0200

Waiting for the same thing is still an error though
---
 java/org/apache/coyote/http2/WindowAllocationManager.java | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 6510312..3ddd742 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -146,8 +146,11 @@ class WindowAllocationManager {
 } else if (waitingFor == waitTarget) {
 // NO-OP
 // Non-blocking post-processing may attempt to flush
-} else {
+} else if ((waitTarget & waitingFor) == NONE) {
 waitingFor |= waitTarget;
+} else {
+throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
+stream.getConnectionId(), stream.getIdentifier()));
 }
 }
 }


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



[tomcat] branch master updated: Fix rare ISE issue I see in TestAsyncFlush.NIO

2019-06-04 Thread remm
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new a98f6d0  Fix rare ISE issue I see in TestAsyncFlush.NIO
a98f6d0 is described below

commit a98f6d02bb92ded2b3b0cb5438fb7c8adb8d85f9
Author: remm 
AuthorDate: Tue Jun 4 10:58:24 2019 +0200

Fix rare ISE issue I see in TestAsyncFlush.NIO

It looks possibly ok to me to wait on both allocation types with
waitForNonBlocking (that's what the test runs into for me, both reach 0
at the same time).
Also use NONE instead of 0.
Tests pass for me, so trying with CI.
---
 .../coyote/http2/WindowAllocationManager.java  | 34 +++---
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 7626bf3..6510312 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -121,7 +121,7 @@ class WindowAllocationManager {
 
 private void waitFor(int waitTarget, long timeout) throws 
InterruptedException {
 synchronized (stream) {
-if (waitingFor != 0) {
+if (waitingFor != NONE) {
 throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
 stream.getConnectionId(), stream.getIdentifier()));
 }
@@ -134,23 +134,21 @@ class WindowAllocationManager {
 stream.wait(timeout);
 }
 
-waitingFor = 0;
+waitingFor = NONE;
 }
 }
 
 
 private void waitForNonBlocking(int waitTarget) {
 synchronized (stream) {
-if (waitingFor == 0) {
+if (waitingFor == NONE) {
 waitingFor = waitTarget;
 } else if (waitingFor == waitTarget) {
 // NO-OP
 // Non-blocking post-processing may attempt to flush
 } else {
-throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
-stream.getConnectionId(), stream.getIdentifier()));
+waitingFor |= waitTarget;
 }
-
 }
 }
 
@@ -162,7 +160,7 @@ class WindowAllocationManager {
 }
 
 synchronized (stream) {
-if ((notifyTarget & waitingFor) > 0) {
+if ((notifyTarget & waitingFor) > NONE) {
 if (stream.getCoyoteResponse().getWriteListener() == null) {
 // Blocking, so use notify to release StreamOutputBuffer
 if (log.isDebugEnabled()) {
@@ -171,17 +169,19 @@ class WindowAllocationManager {
 }
 stream.notify();
 } else {
-waitingFor = 0;
-// Non-blocking so dispatch
-if (log.isDebugEnabled()) {
-
log.debug(sm.getString("windowAllocationManager.dispatched",
-stream.getConnectionId(), 
stream.getIdentifier()));
+waitingFor &= ~notifyTarget;
+if (waitingFor == NONE) {
+// Non-blocking so dispatch
+if (log.isDebugEnabled()) {
+
log.debug(sm.getString("windowAllocationManager.dispatched",
+stream.getConnectionId(), 
stream.getIdentifier()));
+}
+
stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
+// Need to explicitly execute dispatches on the 
StreamProcessor
+// as this thread is being processed by an 
UpgradeProcessor
+// which won't see this dispatch
+
stream.getCoyoteResponse().action(ActionCode.DISPATCH_EXECUTE, null);
 }
-
stream.getCoyoteResponse().action(ActionCode.DISPATCH_WRITE, null);
-// Need to explicitly execute dispatches on the 
StreamProcessor
-// as this thread is being processed by an UpgradeProcessor
-// which won't see this dispatch
-
stream.getCoyoteResponse().action(ActionCode.DISPATCH_EXECUTE, null);
 }
 }
 }


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



[tomcat] branch master updated: Fix typo

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new da208a4  Fix typo
da208a4 is described below

commit da208a4e94f8943a1fdef3e5f02c60bcdf0e8a38
Author: Mark Thomas 
AuthorDate: Tue Jun 4 09:32:43 2019 +0100

Fix typo
---
 java/org/apache/coyote/http2/LocalStrings.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/org/apache/coyote/http2/LocalStrings.properties 
b/java/org/apache/coyote/http2/LocalStrings.properties
index e6b5abc..e7451fd 100644
--- a/java/org/apache/coyote/http2/LocalStrings.properties
+++ b/java/org/apache/coyote/http2/LocalStrings.properties
@@ -165,7 +165,7 @@ windowAllocationManager.waitFor.connection=Connection 
[{0}], Stream [{1}], Waiti
 windowAllocationManager.waitFor.stream=Connection [{0}], Stream [{1}], Waiting 
for Stream flow control window (blocking) with timeout [{3}]
 windowAllocationManager.waitFor.ise=Connection [{0}], Stream [{1}], Already 
waiting
 windowAllocationManager.waitForNonBlocking.connection=Connection [{0}], Stream 
[{1}], Waiting for Connection flow control window (non-blocking)
-windowAllocationManager.waitForNonBlocking.stram=Connection [{0}], Stream 
[{1}], Waiting for Stream flow control window (non-blocking)
+windowAllocationManager.waitForNonBlocking.stream=Connection [{0}], Stream 
[{1}], Waiting for Stream flow control window (non-blocking)
 
 writeStateMachine.endWrite.ise=It is illegal to specify [{0}] for the new 
state once a write has completed
 writeStateMachine.ise=It is illegal to call [{0}()] in state [{1}]


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