[tomcat] branch master updated: Minimize the input sync in a way that still works for me

2019-06-07 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 911c3ab  Minimize the input sync in a way that still works for me
911c3ab is described below

commit 911c3ab9df18ea735f643a03a134fa5f221c71e1
Author: remm 
AuthorDate: Fri Jun 7 10:15:48 2019 +0200

Minimize the input sync in a way that still works for me

Note: Output or input are both the upgrade handler.
Note2: Http2AsyncUpgradeHandler.writeHeaders needs at least the same sync 
(on this).
---
 java/org/apache/coyote/http2/Http2AsyncParser.java | 68 +++---
 java/org/apache/coyote/http2/Http2Parser.java  | 10 ++--
 2 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/java/org/apache/coyote/http2/Http2AsyncParser.java 
b/java/org/apache/coyote/http2/Http2AsyncParser.java
index 55d97eb..827105a 100644
--- a/java/org/apache/coyote/http2/Http2AsyncParser.java
+++ b/java/org/apache/coyote/http2/Http2AsyncParser.java
@@ -240,41 +240,39 @@ class Http2AsyncParser extends Http2Parser {
 if (streamException) {
 swallow(streamId, payloadSize, false, payload);
 } else {
-synchronized (socketWrapper) {
-switch (frameType) {
-case DATA:
-readDataFrame(streamId, flags, 
payloadSize, payload);
-break;
-case HEADERS:
-readHeadersFrame(streamId, flags, 
payloadSize, payload);
-break;
-case PRIORITY:
-readPriorityFrame(streamId, payload);
-break;
-case RST:
-readRstFrame(streamId, payload);
-break;
-case SETTINGS:
-readSettingsFrame(flags, payloadSize, 
payload);
-break;
-case PUSH_PROMISE:
-readPushPromiseFrame(streamId, payload);
-break;
-case PING:
-readPingFrame(flags, payload);
-break;
-case GOAWAY:
-readGoawayFrame(payloadSize, payload);
-break;
-case WINDOW_UPDATE:
-readWindowUpdateFrame(streamId, payload);
-break;
-case CONTINUATION:
-readContinuationFrame(streamId, flags, 
payloadSize, payload);
-break;
-case UNKNOWN:
-readUnknownFrame(streamId, frameType, 
flags, payloadSize, payload);
-}
+switch (frameType) {
+case DATA:
+readDataFrame(streamId, flags, payloadSize, 
payload);
+break;
+case HEADERS:
+readHeadersFrame(streamId, flags, payloadSize, 
payload);
+break;
+case PRIORITY:
+readPriorityFrame(streamId, payload);
+break;
+case RST:
+readRstFrame(streamId, payload);
+break;
+case SETTINGS:
+readSettingsFrame(flags, payloadSize, payload);
+break;
+case PUSH_PROMISE:
+readPushPromiseFrame(streamId, payload);
+break;
+case PING:
+readPingFrame(flags, payload);
+break;
+case GOAWAY:
+readGoawayFrame(payloadSize, payload);
+break;
+case WINDOW_UPDATE:
+readWindowUpdateFrame(streamId, payload);
+break;
+case CONTINUATION:
+readContinuationFrame(streamId, flags, 
payloadSize,

Re: [tomcat] 02/02: Remove a source of potential deadlocks

2019-06-07 Thread Mark Thomas
On 06/06/2019 22:51, Mark Thomas wrote:



> I haven't quite tracked down the other deadlock yet. The timing gap is
> narrower so it is harder to capture. I have some ideas to work on tomorrow.

This is the stack trace:

Essentially, something should call notify on the NioOperationState
instance but it never happens. I'm still trying to figure out the root
cause.

Mark


"https-jsse-nio-8443-exec-9" #38 daemon prio=5 os_prio=0 cpu=21.95ms
elapsed=469.80s tid=0x7f7f3ca34000 nid=0x1306e in Object.wait()
[0x7f7ee568f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.3/Native Method)
- waiting on <0xc748f130> (a
org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
at
org.apache.tomcat.util.net.SocketWrapperBase.vectoredOperation(SocketWrapperBase.java:1482)
- waiting to re-lock in wait() <0xc748f130> (a
org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
at
org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:1403)
at
org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:1374)
at
org.apache.coyote.http2.Http2AsyncUpgradeHandler.writeBody(Http2AsyncUpgradeHandler.java:214)
at
org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:949)
- locked <0xc75d36a8> (a
org.apache.coyote.http2.Stream$StreamOutputBuffer)
at
org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:859)
- locked <0xc75d36a8> (a
org.apache.coyote.http2.Stream$StreamOutputBuffer)
at
org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59)
at org.apache.coyote.Response.doWrite(Response.java:599)
at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:329)
at
org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:736)
at
org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:665)
at
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:376)
at
org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:354)
at
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
at
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
at
org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1118)

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



Re: [tomcat] 02/02: Remove a source of potential deadlocks

2019-06-07 Thread Rémy Maucherat
On Fri, Jun 7, 2019 at 11:00 AM Mark Thomas  wrote:

> On 06/06/2019 22:51, Mark Thomas wrote:
>
> 
>
> > I haven't quite tracked down the other deadlock yet. The timing gap is
> > narrower so it is harder to capture. I have some ideas to work on
> tomorrow.
>
> This is the stack trace:
>
> Essentially, something should call notify on the NioOperationState
> instance but it never happens. I'm still trying to figure out the root
> cause.
>

This emulates a blocking write, so either there's really a problem
notifying or it is that the client is no longer reading and the wait will
eventually timeout. The state update seems properly synced and the notify
is called when the operation is considered complete, this looks ok to me.

Rémy


>
> Mark
>
>
> "https-jsse-nio-8443-exec-9" #38 daemon prio=5 os_prio=0 cpu=21.95ms
> elapsed=469.80s tid=0x7f7f3ca34000 nid=0x1306e in Object.wait()
> [0x7f7ee568f000]
>java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(java.base@11.0.3/Native Method)
> - waiting on <0xc748f130> (a
> org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
> at
> org.apache.tomcat.util.net
> .SocketWrapperBase.vectoredOperation(SocketWrapperBase.java:1482)
> - waiting to re-lock in wait() <0xc748f130> (a
> org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
> at
> org.apache.tomcat.util.net
> .SocketWrapperBase.write(SocketWrapperBase.java:1403)
> at
> org.apache.tomcat.util.net
> .SocketWrapperBase.write(SocketWrapperBase.java:1374)
> at
>
> org.apache.coyote.http2.Http2AsyncUpgradeHandler.writeBody(Http2AsyncUpgradeHandler.java:214)
> at
> org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:949)
> - locked <0xc75d36a8> (a
> org.apache.coyote.http2.Stream$StreamOutputBuffer)
> at
> org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:859)
> - locked <0xc75d36a8> (a
> org.apache.coyote.http2.Stream$StreamOutputBuffer)
> at
>
> org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59)
> at org.apache.coyote.Response.doWrite(Response.java:599)
> at
>
> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:329)
> at
>
> org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:736)
> at
> org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:665)
> at
>
> org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:376)
> at
> org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:354)
> at
>
> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
> at
>
> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
> at
>
> org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1118)
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>


[tomcat] branch master updated: readOperation and writeOperation are used across threads without syncs

2019-06-07 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 52cab0c  readOperation and writeOperation are used across threads 
without syncs
52cab0c is described below

commit 52cab0c6b91441c2f1f7381cc658ecd8e900
Author: Mark Thomas 
AuthorDate: Fri Jun 7 11:02:00 2019 +0100

readOperation and writeOperation are used across threads without syncs

Make them volatile so updates in one thread are visible to another.
Note that this does not affect the fields in the OperationState
instances.
---
 java/org/apache/tomcat/util/net/SocketWrapperBase.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
index 4207fd3..d4af16b 100644
--- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java
+++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
@@ -104,9 +104,9 @@ public abstract class SocketWrapperBase {
 protected final WriteBuffer nonBlockingWriteBuffer = new 
WriteBuffer(bufferedWriteSize);
 
 protected final Semaphore readPending;
-protected OperationState readOperation = null;
+protected volatile OperationState readOperation = null;
 protected final Semaphore writePending;
-protected OperationState writeOperation = null;
+protected volatile OperationState writeOperation = null;
 
 public SocketWrapperBase(E socket, AbstractEndpoint endpoint) {
 this.socket = socket;


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



Re: [tomcat] 02/02: Remove a source of potential deadlocks

2019-06-07 Thread Mark Thomas
On 07/06/2019 10:51, Rémy Maucherat wrote:
> On Fri, Jun 7, 2019 at 11:00 AM Mark Thomas  > wrote:
> 
> On 06/06/2019 22:51, Mark Thomas wrote:
> 
> 
> 
> > I haven't quite tracked down the other deadlock yet. The timing gap is
> > narrower so it is harder to capture. I have some ideas to work on
> tomorrow.
> 
> This is the stack trace:
> 
> Essentially, something should call notify on the NioOperationState
> instance but it never happens. I'm still trying to figure out the root
> cause.
> 
> 
> This emulates a blocking write, so either there's really a problem
> notifying or it is that the client is no longer reading and the wait
> will eventually timeout. The state update seems properly synced and the
> notify is called when the operation is considered complete, this looks
> ok to me.

The only potential issue I found didn't seem to have any impact although
I've fixed it anyway.

The client might stop reading due to header corruption as a result of
the bug I re-introduced with the first deadlock fix. I have a
alternative fix that I'll commit shortly and then re-test.

Mark

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



[tomcat] branch master updated: Follow-up to e967bbc. Provide a sync but on a different object.

2019-06-07 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 42e2ef2  Follow-up to e967bbc. Provide a sync but on a different 
object.
42e2ef2 is described below

commit 42e2ef20c75b63941b2f0bade520963da711b836
Author: Mark Thomas 
AuthorDate: Fri Jun 7 11:55:29 2019 +0100

Follow-up to e967bbc. Provide a sync but on a different object.

As identified by BZ 61740, headers must be written in the same order
they are generated because the compression algorithm used maintains
state across multiple request/response pairs.

Sync on a dedicated object to ensure that this is the case.
---
 .../coyote/http2/Http2AsyncUpgradeHandler.java   | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
index 8a57c53..3115eda 100644
--- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
@@ -39,6 +39,10 @@ import 
org.apache.tomcat.util.net.SocketWrapperBase.BlockingMode;
 public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler {
 
 private static final ByteBuffer[] BYTEBUFFER_ARRAY = new ByteBuffer[0];
+// Ensures headers are generated and then written for one thread at a time.
+// Because of the compression used, headers need to be written to the
+// network in the same order they are generated.
+private final Object headerWriteLock = new Object();
 private Throwable error = null;
 private IOException applicationIOE = null;
 
@@ -169,13 +173,15 @@ public class Http2AsyncUpgradeHandler extends 
Http2UpgradeHandler {
 @Override
 void writeHeaders(Stream stream, int pushedStreamId, MimeHeaders 
mimeHeaders,
 boolean endOfStream, int payloadSize) throws IOException {
-AsyncHeaderFrameBuffers headerFrameBuffers = (AsyncHeaderFrameBuffers)
-doWriteHeaders(stream, pushedStreamId, mimeHeaders, 
endOfStream, payloadSize);
-if (headerFrameBuffers != null) {
-socketWrapper.write(BlockingMode.SEMI_BLOCK, 
protocol.getWriteTimeout(),
-TimeUnit.MILLISECONDS, null, 
SocketWrapperBase.COMPLETE_WRITE,
-applicationErrorCompletion, 
headerFrameBuffers.bufs.toArray(BYTEBUFFER_ARRAY));
-handleAsyncException();
+synchronized (headerWriteLock) {
+AsyncHeaderFrameBuffers headerFrameBuffers = 
(AsyncHeaderFrameBuffers)
+doWriteHeaders(stream, pushedStreamId, mimeHeaders, 
endOfStream, payloadSize);
+if (headerFrameBuffers != null) {
+socketWrapper.write(BlockingMode.SEMI_BLOCK, 
protocol.getWriteTimeout(),
+TimeUnit.MILLISECONDS, null, 
SocketWrapperBase.COMPLETE_WRITE,
+applicationErrorCompletion, 
headerFrameBuffers.bufs.toArray(BYTEBUFFER_ARRAY));
+handleAsyncException();
+}
 }
 if (endOfStream) {
 stream.sentEndOfStream();


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



Re: [tomcat] branch master updated: Follow-up to e967bbc. Provide a sync but on a different object.

2019-06-07 Thread Rémy Maucherat
On Fri, Jun 7, 2019 at 12:57 PM  wrote:

> 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 42e2ef2  Follow-up to e967bbc. Provide a sync but on a different
> object.
> 42e2ef2 is described below
>
> commit 42e2ef20c75b63941b2f0bade520963da711b836
> Author: Mark Thomas 
> AuthorDate: Fri Jun 7 11:55:29 2019 +0100
>
> Follow-up to e967bbc. Provide a sync but on a different object.
>
> As identified by BZ 61740, headers must be written in the same order
> they are generated because the compression algorithm used maintains
> state across multiple request/response pairs.
>
> Sync on a dedicated object to ensure that this is the case.
>

My tests still work with that lock object change, so a local lock was
enough here.

Rémy


> ---
>  .../coyote/http2/Http2AsyncUpgradeHandler.java   | 20
> +---
>  1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
> b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
> index 8a57c53..3115eda 100644
> --- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
> +++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
> @@ -39,6 +39,10 @@ import org.apache.tomcat.util.net
> .SocketWrapperBase.BlockingMode;
>  public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler {
>
>  private static final ByteBuffer[] BYTEBUFFER_ARRAY = new
> ByteBuffer[0];
> +// Ensures headers are generated and then written for one thread at a
> time.
> +// Because of the compression used, headers need to be written to the
> +// network in the same order they are generated.
> +private final Object headerWriteLock = new Object();
>  private Throwable error = null;
>  private IOException applicationIOE = null;
>
> @@ -169,13 +173,15 @@ public class Http2AsyncUpgradeHandler extends
> Http2UpgradeHandler {
>  @Override
>  void writeHeaders(Stream stream, int pushedStreamId, MimeHeaders
> mimeHeaders,
>  boolean endOfStream, int payloadSize) throws IOException {
> -AsyncHeaderFrameBuffers headerFrameBuffers =
> (AsyncHeaderFrameBuffers)
> -doWriteHeaders(stream, pushedStreamId, mimeHeaders,
> endOfStream, payloadSize);
> -if (headerFrameBuffers != null) {
> -socketWrapper.write(BlockingMode.SEMI_BLOCK,
> protocol.getWriteTimeout(),
> -TimeUnit.MILLISECONDS, null,
> SocketWrapperBase.COMPLETE_WRITE,
> -applicationErrorCompletion,
> headerFrameBuffers.bufs.toArray(BYTEBUFFER_ARRAY));
> -handleAsyncException();
> +synchronized (headerWriteLock) {
> +AsyncHeaderFrameBuffers headerFrameBuffers =
> (AsyncHeaderFrameBuffers)
> +doWriteHeaders(stream, pushedStreamId, mimeHeaders,
> endOfStream, payloadSize);
> +if (headerFrameBuffers != null) {
> +socketWrapper.write(BlockingMode.SEMI_BLOCK,
> protocol.getWriteTimeout(),
> +TimeUnit.MILLISECONDS, null,
> SocketWrapperBase.COMPLETE_WRITE,
> +applicationErrorCompletion,
> headerFrameBuffers.bufs.toArray(BYTEBUFFER_ARRAY));
> +handleAsyncException();
> +}
>  }
>  if (endOfStream) {
>  stream.sentEndOfStream();
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>


Re: [tomcat] branch master updated: Follow-up to e967bbc. Provide a sync but on a different object.

2019-06-07 Thread Mark Thomas
On 07/06/2019 12:13, Rémy Maucherat wrote:
> On Fri, Jun 7, 2019 at 12:57 PM  > wrote:
> 
> 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 42e2ef2  Follow-up to e967bbc. Provide a sync but on a
> different object.
> 42e2ef2 is described below
> 
> commit 42e2ef20c75b63941b2f0bade520963da711b836
> Author: Mark Thomas mailto:ma...@apache.org>>
> AuthorDate: Fri Jun 7 11:55:29 2019 +0100
> 
>     Follow-up to e967bbc. Provide a sync but on a different object.
> 
>     As identified by BZ 61740, headers must be written in the same order
>     they are generated because the compression algorithm used maintains
>     state across multiple request/response pairs.
> 
>     Sync on a dedicated object to ensure that this is the case.
> 
> 
> My tests still work with that lock object change, so a local lock was
> enough here.

That is good news.

The prioritisation tests aren't showing the errors they were previously
either so it does look there was just the one deadlock issue to fix.

Back to thinking about how to tackle prioritisation before the
connection flow control window is exhausted...

Mark

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



Re: [VOTE] Release Apache Tomcat 8.5.42

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

Mark,

On 6/4/19 17:06, Mark Thomas wrote:
> 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-121
4/
>
>  The tag is: https://github.com/apache/tomcat/tree/8.5.42 
> 00b711f6af57e043bf4d5d64dbc1617970a54d69
> 
> 
> The proposed 8.5.42 release is: [ ] Broken - do not release [X]
> Stable - go ahead and release as 8.5.42

Thanks for RMing.

All is well with a vanilla Servlet 2.5-style application fronted with
with mod_jk. Failed unit tests are known to fail in this environment.
Details below:

* Environment
*  Java (build): openjdk version "1.8.0_212" OpenJDK Runtime
Environment (build 1.8.0_212-8u212-b03-2~deb9u1-b03) OpenJDK 64-Bit
Server VM (build 25.212-b03, mixed mode)
*  Java (test): openjdk version "1.8.0_212" OpenJDK Runtime
Environment (build 1.8.0_212-8u212-b03-2~deb9u1-b03) OpenJDK 64-Bit
Server VM (build 25.212-b03, mixed mode)
*  OS:   Linux 4.9.0-7-amd64 x86_64
*  cc:   cc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
*  make: GNU Make 4.1
*  OpenSSL:  OpenSSL 1.1.1 11 Sep 2018
*  APR:  1.5.2
*
* Valid SHA-512 signature for apache-tomcat-8.5.42.zip
* Valid GPG signature for apache-tomcat-8.5.42.zip
* Valid SHA-512 signature for apache-tomcat-8.5.42.tar.gz
* Valid GPG signature for apache-tomcat-8.5.42.tar.gz
* Valid SHA-512 signature for apache-tomcat-8.5.42.exe
* Valid GPG signature for apache-tomcat-8.5.42.exe
* Valid SHA512 signature for apache-tomcat-8.5.42-src.zip
* Valid GPG signature for apache-tomcat-8.5.42-src.zip
* Valid SHA512 signature for apache-tomcat-8.5.42-src.tar.gz
* Valid GPG signature for apache-tomcat-8.5.42-src.tar.gz
*
* Binary Zip and tarball: Same
* Source Zip and tarball: Same
*
* Building dependencies returned: 0
* tcnative builds cleanly
* Tomcat builds cleanly
* Junit Tests: FAILED
*
* Tests that failed:
* org.apache.catalina.session.TestStandardSessionIntegration.APR.txt
* org.apache.catalina.session.TestStandardSessionIntegration.NIO.txt
* org.apache.catalina.session.TestStandardSessionIntegration.NIO2.txt
* org.apache.catalina.tribes.group.TestGroupChannelMemberArrival.APR.txt
* org.apache.catalina.tribes.group.TestGroupChannelMemberArrival.NIO.txt
* org.apache.catalina.tribes.group.TestGroupChannelMemberArrival.NIO2.tx
t
*
org.apache.catalina.tribes.group.TestGroupChannelSenderConnections.APR.t
xt
*
org.apache.catalina.tribes.group.TestGroupChannelSenderConnections.NIO.t
xt
*
org.apache.catalina.tribes.group.TestGroupChannelSenderConnections.NIO2.
txt
* org.apache.catalina.tribes.group.TestGroupChannelStartStop.APR.txt
* org.apache.catalina.tribes.group.TestGroupChannelStartStop.NIO.txt
* org.apache.catalina.tribes.group.TestGroupChannelStartStop.NIO2.txt
*
org.apache.catalina.tribes.group.interceptors.TestNonBlockingCoordinator
.APR.txt
*
org.apache.catalina.tribes.group.interceptors.TestNonBlockingCoordinator
.NIO.txt
*
org.apache.catalina.tribes.group.interceptors.TestNonBlockingCoordinator
.NIO2.txt
*
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor.APR.t
xt
*
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor.NIO.t
xt
*
org.apache.catalina.tribes.group.interceptors.TestOrderInterceptor.NIO2.
txt
*
org.apache.catalina.tribes.group.interceptors.TestTcpFailureDetector.APR
.txt
*
org.apache.catalina.tribes.group.interceptors.TestTcpFailureDetector.NIO
.txt
*
org.apache.catalina.tribes.group.interceptors.TestTcpFailureDetector.NIO
2.txt
* org.apache.tomcat.util.net.openssl.ciphers.TestCipher.APR.txt
* org.apache.tomcat.util.net.openssl.ciphers.TestCipher.NIO.txt
* org.apache.tomcat.util.net.openssl.ciphers.TestCipher.NIO2.txt
*
org.apache.tomcat.util.net.openssl.ciphers.TestOpenSSLCipherConfiguratio
nParser.APR.txt
*
org.apache.tomcat.util.net.openssl.ciphers.TestOpenSSLCipherConfiguratio
nParser.NIO.txt
*
org.apache.tomcat.util.net.openssl.ciphers.TestOpenSSLCipherConfiguratio
nParser.NIO2.txt


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

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlz6c4EACgkQHPApP6U8
pFg5NA//VIx+Ig903MdUM14gzFw3U51wV1bpR5qBU2ryJNvQ92x3Lxi5g+ObxdO2
Fr0lpCFmVx5Xtv/SWn9VrOHOblPU05P6CtHxs36x1yfhLySAbS75r08dScw5XecN
TWUZwYXOJBI2ex0YYODMwvcuQUmBI2pmy/lMehNvVjMmbqVwvCa8mrJ0jVK9poyB
LsuhqeT0mU4GLo+n93ETDuJqhLHOAm+LXiY9DY

[VOTE][RESULT] Release Apache Tomcat 9.0.21

2019-06-07 Thread Mark Thomas
The following votes were cast:

Binding:
+1: remm, markt, csutherl, isapir, jfclere, mgrigorov

No other votes were cast.

The vote therefore passes.

Thanks to everyone who contributed to this release.

Mark

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



Nexus: Promotion Completed

2019-06-07 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 promoted to the "Releases" [id=releases] repository/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-jdb

[tomcat] branch master updated: Add 9.0.21 release date

2019-06-07 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 ca5e2de  Add 9.0.21 release date
ca5e2de is described below

commit ca5e2def541d0123ca3a573da6659c0dbc3a83e0
Author: Mark Thomas 
AuthorDate: Fri Jun 7 21:23:28 2019 +0100

Add 9.0.21 release date
---
 webapps/docs/changelog.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index d65a1f3..4dacf65 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -55,7 +55,7 @@
 
   
 
-
+
   
 
   


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



svn commit: r34456 - /dev/tomcat/tomcat-9/v9.0.21/ /release/tomcat/tomcat-9/v9.0.21/

2019-06-07 Thread markt
Author: markt
Date: Fri Jun  7 20:24:50 2019
New Revision: 34456

Log:
Release Apache Tomcat 9.0.21

Added:
release/tomcat/tomcat-9/v9.0.21/
  - copied from r34455, dev/tomcat/tomcat-9/v9.0.21/
Removed:
dev/tomcat/tomcat-9/v9.0.21/


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



[VOTE][RESULT] Release Apache Tomcat 8.5.42

2019-06-07 Thread Mark Thomas
The following votes were cast:

Binding:
+1: markt, remm, csutherl, isapir, mgrigorov, schultz

No other votes were case.

The vote therefore passes.

Thanks to everyone who contributed to this release.

Mark

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



Nexus: Promotion Completed

2019-06-07 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 promoted to the "Releases" [id=releases] repository/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: 16edca2a

svn commit: r34457 - /dev/tomcat/tomcat-8/v8.5.42/ /release/tomcat/tomcat-8/v8.5.42/

2019-06-07 Thread markt
Author: markt
Date: Fri Jun  7 20:27:58 2019
New Revision: 34457

Log:
Release Apache Tomact 8.5.42

Added:
release/tomcat/tomcat-8/v8.5.42/
  - copied from r34456, dev/tomcat/tomcat-8/v8.5.42/
Removed:
dev/tomcat/tomcat-8/v8.5.42/


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



[tomcat] branch 8.5.x updated: Add release date for 8.5.42

2019-06-07 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 87dbe8f  Add release date for 8.5.42
87dbe8f is described below

commit 87dbe8f9d8af12499ce0bd3ef49f28b6a8b5306d
Author: Mark Thomas 
AuthorDate: Fri Jun 7 21:29:54 2019 +0100

Add release date for 8.5.42
---
 webapps/docs/changelog.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index d7ef7fc..612a689 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -54,7 +54,7 @@
 
   
 
-
+
   
 
   


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