[GitHub] [tomcat] yanming16 closed pull request #229: 8.5.x note xiaoming

2019-12-09 Thread GitBox
yanming16 closed pull request #229: 8.5.x note xiaoming
URL: https://github.com/apache/tomcat/pull/229
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] yanming16 opened a new pull request #229: 8.5.x note xiaoming

2019-12-09 Thread GitBox
yanming16 opened a new pull request #229: 8.5.x note xiaoming
URL: https://github.com/apache/tomcat/pull/229
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

-
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 a currently disabled test for async timeout with HTTP/2

2019-12-09 Thread Rémy Maucherat
On Mon, Dec 9, 2019 at 7:59 PM Mark Thomas  wrote:

> On 09/12/2019 17:34, ma...@apache.org 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 dcc6ad5  Add a currently disabled test for async timeout with
> HTTP/2
> > dcc6ad5 is described below
> >
> > commit dcc6ad52ad6a3ca53ebc1270b89df9fbc6da2f31
> > Author: Mark Thomas 
> > AuthorDate: Mon Dec 9 17:34:10 2019 +
> >
> > Add a currently disabled test for async timeout with HTTP/2
>
> Note: This test isn't quite right yet. I'll commit the fix once I've
> fixed the underlying issue. The issue is proving trickier than I thought
> it would - mainly because it looks like I'm going to need to make a
> bigger change than I really want to. I know what needs to happen, I'm
> trying to figure out the best way to make it happen.
>
> There's indeed a problem and it's a lot harder than I expected.
With async the timeoutAsync goes nowhere as no processor gets added to the
waitingProcessors.
Without async, the timeout goes to the processor of the connection which
isn't much better, it would have to go to the stream which was doing the
async request (but it's not processed through the protocol, obviously).
Either way it's not going to work :(

Earlier, I wanted to remove the waitingProcessors from AbstractProtocol in
favor of some processing in the endpoint. I found out that isn't a very
good idea.
Maybe instead the actual async timeout processing should be moved one level
up (do them in the Catalina adapter, but as usual use a dispatch to do it
when they happen). Would that work better ?

Rémy


Re: [VOTE] Release Apache Tomcat 9.0.30

2019-12-09 Thread Romain Manni-Bucau
+1 (non binding)

Le lun. 9 déc. 2019 à 16:18, Coty Sutherland  a écrit :

> On Sat, Dec 7, 2019 at 12:24 PM Mark Thomas  wrote:
>
>> The proposed Apache Tomcat 9.0.30 release is now available for voting.
>>
>> The major changes compared to the 9.0.29 release are:
>>
>> - Correct multiple regressions in the static resource caching related to
>>   using URLs provided for cached resources
>>
>> - Improvements to the Realm interface and implementations
>>
>> - Bug fixes and improvements to the CORS filter
>>
>> 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.30/
>> The Maven staging repo is:
>> https://repository.apache.org/content/repositories/orgapachetomcat-1240/
>> The tag is:
>> https://github.com/apache/tomcat/tree/9.0.30
>> 4fab4cc012d0c31852e957d198cb0549f3d6074c
>>
>> The proposed 9.0.30 release is:
>> [ ] Broken - do not release
>> [x] Stable - go ahead and release as 9.0.30
>>
>
> +1
>
>
>>
>> -
>> 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 a currently disabled test for async timeout with HTTP/2

2019-12-09 Thread Mark Thomas
On 09/12/2019 17:34, ma...@apache.org 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 dcc6ad5  Add a currently disabled test for async timeout with HTTP/2
> dcc6ad5 is described below
> 
> commit dcc6ad52ad6a3ca53ebc1270b89df9fbc6da2f31
> Author: Mark Thomas 
> AuthorDate: Mon Dec 9 17:34:10 2019 +
> 
> Add a currently disabled test for async timeout with HTTP/2

Note: This test isn't quite right yet. I'll commit the fix once I've
fixed the underlying issue. The issue is proving trickier than I thought
it would - mainly because it looks like I'm going to need to make a
bigger change than I really want to. I know what needs to happen, I'm
trying to figure out the best way to make it happen.

Mark


> ---
>  test/org/apache/coyote/http2/TestAsyncTimeout.java | 142 
> +
>  1 file changed, 142 insertions(+)
> 
> diff --git a/test/org/apache/coyote/http2/TestAsyncTimeout.java 
> b/test/org/apache/coyote/http2/TestAsyncTimeout.java
> new file mode 100644
> index 000..70a5348
> --- /dev/null
> +++ b/test/org/apache/coyote/http2/TestAsyncTimeout.java
> @@ -0,0 +1,142 @@
> +/*
> + *  Licensed to the Apache Software Foundation (ASF) under one or more
> + *  contributor license agreements.  See the NOTICE file distributed with
> + *  this work for additional information regarding copyright ownership.
> + *  The ASF licenses this file to You under the Apache License, Version 2.0
> + *  (the "License"); you may not use this file except in compliance with
> + *  the License.  You may obtain a copy of the License at
> + *
> + *  http://www.apache.org/licenses/LICENSE-2.0
> + *
> + *  Unless required by applicable law or agreed to in writing, software
> + *  distributed under the License is distributed on an "AS IS" BASIS,
> + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + *  See the License for the specific language governing permissions and
> + *  limitations under the License.
> + */
> +package org.apache.coyote.http2;
> +
> +import java.io.IOException;
> +import java.io.PrintWriter;
> +import java.nio.ByteBuffer;
> +import java.util.concurrent.atomic.AtomicBoolean;
> +
> +import javax.servlet.AsyncContext;
> +import javax.servlet.AsyncEvent;
> +import javax.servlet.AsyncListener;
> +import javax.servlet.http.HttpServlet;
> +import javax.servlet.http.HttpServletRequest;
> +import javax.servlet.http.HttpServletResponse;
> +
> +import org.junit.Assert;
> +import org.junit.Ignore;
> +import org.junit.Test;
> +
> +import org.apache.catalina.Context;
> +import org.apache.catalina.Wrapper;
> +import org.apache.catalina.startup.Tomcat;
> +
> +public class TestAsyncTimeout extends Http2TestBase {
> +
> +@Ignore // Until this HTTP/2 + async timeouts is fixed
> +@Test
> +public void testTimeout() throws Exception {
> +enableHttp2();
> +
> +Tomcat tomcat = getTomcatInstance();
> +
> +Context ctxt = tomcat.addContext("", null);
> +Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
> +ctxt.addServletMappingDecoded("/simple", "simple");
> +Wrapper w = Tomcat.addServlet(ctxt, "async", new 
> AsyncTimeoutServlet());
> +w.setAsyncSupported(true);
> +ctxt.addServletMappingDecoded("/async", "async");
> +tomcat.start();
> +
> +openClientConnection();
> +doHttpUpgrade();
> +sendClientPreface();
> +validateHttp2InitialResponse();
> +
> +// Reset connection window size after intial response
> +sendWindowUpdate(0, SimpleServlet.CONTENT_LENGTH);
> +
> +output.setTraceBody(true);
> +
> +// Send request
> +byte[] frameHeader = new byte[9];
> +ByteBuffer headersPayload = ByteBuffer.allocate(128);
> +buildGetRequest(frameHeader, headersPayload, null, 3, "/async");
> +writeFrame(frameHeader, headersPayload);
> +
> +// Headers
> +parser.readFrame(true);
> +// Body
> +parser.readFrame(true);
> +
> +// Check that the right number of bytes were received
> +String trace = output.getTrace();
> +Assert.assertTrue(trace, trace.contains("PASS"));
> +}
> +
> +
> +public static class AsyncTimeoutServlet extends HttpServlet {
> +
> +private static final long serialVersionUID = 1L;
> +
> +@Override
> +protected void doGet(HttpServletRequest request, HttpServletResponse 
> response)
> +throws IOException {
> +
> +final AsyncContext asyncContext = request.startAsync();
> +
> +response.setStatus(HttpServletResponse.SC_OK);
> +response.setContentType("text/plain");
> +response.setCharacterEncoding("UTF-8");
> +
> +

[tomcat] branch master updated: Add a currently disabled test for async timeout with HTTP/2

2019-12-09 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 dcc6ad5  Add a currently disabled test for async timeout with HTTP/2
dcc6ad5 is described below

commit dcc6ad52ad6a3ca53ebc1270b89df9fbc6da2f31
Author: Mark Thomas 
AuthorDate: Mon Dec 9 17:34:10 2019 +

Add a currently disabled test for async timeout with HTTP/2
---
 test/org/apache/coyote/http2/TestAsyncTimeout.java | 142 +
 1 file changed, 142 insertions(+)

diff --git a/test/org/apache/coyote/http2/TestAsyncTimeout.java 
b/test/org/apache/coyote/http2/TestAsyncTimeout.java
new file mode 100644
index 000..70a5348
--- /dev/null
+++ b/test/org/apache/coyote/http2/TestAsyncTimeout.java
@@ -0,0 +1,142 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.coyote.http2;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.nio.ByteBuffer;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.servlet.AsyncContext;
+import javax.servlet.AsyncEvent;
+import javax.servlet.AsyncListener;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.Wrapper;
+import org.apache.catalina.startup.Tomcat;
+
+public class TestAsyncTimeout extends Http2TestBase {
+
+@Ignore // Until this HTTP/2 + async timeouts is fixed
+@Test
+public void testTimeout() throws Exception {
+enableHttp2();
+
+Tomcat tomcat = getTomcatInstance();
+
+Context ctxt = tomcat.addContext("", null);
+Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
+ctxt.addServletMappingDecoded("/simple", "simple");
+Wrapper w = Tomcat.addServlet(ctxt, "async", new 
AsyncTimeoutServlet());
+w.setAsyncSupported(true);
+ctxt.addServletMappingDecoded("/async", "async");
+tomcat.start();
+
+openClientConnection();
+doHttpUpgrade();
+sendClientPreface();
+validateHttp2InitialResponse();
+
+// Reset connection window size after intial response
+sendWindowUpdate(0, SimpleServlet.CONTENT_LENGTH);
+
+output.setTraceBody(true);
+
+// Send request
+byte[] frameHeader = new byte[9];
+ByteBuffer headersPayload = ByteBuffer.allocate(128);
+buildGetRequest(frameHeader, headersPayload, null, 3, "/async");
+writeFrame(frameHeader, headersPayload);
+
+// Headers
+parser.readFrame(true);
+// Body
+parser.readFrame(true);
+
+// Check that the right number of bytes were received
+String trace = output.getTrace();
+Assert.assertTrue(trace, trace.contains("PASS"));
+}
+
+
+public static class AsyncTimeoutServlet extends HttpServlet {
+
+private static final long serialVersionUID = 1L;
+
+@Override
+protected void doGet(HttpServletRequest request, HttpServletResponse 
response)
+throws IOException {
+
+final AsyncContext asyncContext = request.startAsync();
+
+response.setStatus(HttpServletResponse.SC_OK);
+response.setContentType("text/plain");
+response.setCharacterEncoding("UTF-8");
+
+asyncContext.addListener(new AsyncListener() {
+
+AtomicBoolean ended = new AtomicBoolean(false);
+
+@Override
+public void onTimeout(AsyncEvent event) throws IOException {
+if (ended.compareAndSet(false, true)) {
+PrintWriter pw = 
event.getAsyncContext().getResponse().getWriter();
+pw.write("PASS");
+pw.flush();
+event.getAsyncContext().complete();
+}
+}
+
+@Override
+public void onStartAsync(AsyncEvent event) throws 

[Bug 63995] New: Statements are not closed when a JDBC connection is passivated in tomcat-dbcp

2019-12-09 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63995

Bug ID: 63995
   Summary: Statements are not closed when a JDBC connection is
passivated in tomcat-dbcp
   Product: Tomcat 8
   Version: 8.5.49
  Hardware: PC
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: s...@iname.com
  Target Milestone: 

Web-application opens connection from JNDI pool, creates PreparedStatements,
closes connection without closing statements.

Statements are kept open and 
"ORA-01000: maximum open cursors exceeded" error is thrown.

Pool is expected to close statements on connection close.

The problem seems to be in
src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java, ported from
DBCP2.

Tomcat version (but not dbcp2 version) contains following code:
https://github.com/apache/tomcat/blob/master/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java#L624

protected void passivate() throws SQLException {
...
if (traces != null && traces.isEmpty()) {
  

In DBCP2 version this line has ! before isEmpty():
https://github.com/apache/commons-dbcp/blob/master/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java#L624

if (traces != null && !traces.isEmpty()) {
 ^^^

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 63859] AJP cping/cpong mode failing on Tomcat 9.x

2019-12-09 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63859

--- Comment #25 from Aurelien Pernoud  ---
FYI I disabled the mod_jk debug to avoid having to clean it on a daily basis, I
will continue to monitor with mode "A" if the issue eventually comes back but
to me I would consider this one fix now ;)

Many thanks Mark

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [VOTE] Release Apache Tomcat 8.5.50

2019-12-09 Thread Coty Sutherland
On Sat, Dec 7, 2019 at 2:54 PM Mark Thomas  wrote:

> The proposed Apache Tomcat 8.5.50 release is now available for voting.
>
> The major changes compared to the 8.5.49 release are:
>
> - Correct multiple regressions in the static resource caching related to
>   using URLs provided for cached resources
>
> - Improvements to the Realm interface and implementations
>
> - Bug fixes and improvements to the CORS filter
>
> 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.50/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1241/
>
> The tag is:
> https://github.com/apache/tomcat/tree/8.5.50
> c40ede65ea4fb44b1957ec482f28c7afa71f1b50
>
> The proposed 8.5.50 release is:
> [ ] Broken - do not release
> [x] Stable - go ahead and release as 8.5.50
>

+1


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


Re: [VOTE] Release Apache Tomcat 9.0.30

2019-12-09 Thread Coty Sutherland
On Sat, Dec 7, 2019 at 12:24 PM Mark Thomas  wrote:

> The proposed Apache Tomcat 9.0.30 release is now available for voting.
>
> The major changes compared to the 9.0.29 release are:
>
> - Correct multiple regressions in the static resource caching related to
>   using URLs provided for cached resources
>
> - Improvements to the Realm interface and implementations
>
> - Bug fixes and improvements to the CORS filter
>
> 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.30/
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1240/
> The tag is:
> https://github.com/apache/tomcat/tree/9.0.30
> 4fab4cc012d0c31852e957d198cb0549f3d6074c
>
> The proposed 9.0.30 release is:
> [ ] Broken - do not release
> [x] Stable - go ahead and release as 9.0.30
>

+1


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


Re: NioSelectorPool usefulness

2019-12-09 Thread Rémy Maucherat
On Tue, Dec 3, 2019 at 11:08 PM Mark Thomas  wrote:

> On 03/12/2019 21:00, Rémy Maucherat wrote:
> > Hi,
> >
> > NioSelectorPool is probably never used out of its default default
> > configuration as the capability is well hidden, so I had a look. I
> > couldn't really see a difference with ab/h2load between the default
> > (shared = true) and a pooled selector with all the extra code.
> >
> > Then moving down the stack NioBlockingSelector is also an experience.
> > "Possibly encountered sun bug 5076772 on windows JDK 1.5" might not be
> > the most useful debug log anymore.
> >
> > Any opinion on that ?
>
> No objections to removing the NioSelectorPool or cleaning up the
> NioBlockingSelector at some point fairly soon. However, I'm a little
> concerned about connector stability right now (see thread on asyncIO) so
> I think we should move a little more carefully on this than usual.
>

Committed for review now that 9.0.30 is tagged, since it's very easy to
revert if needed for any reason (test failures, urgent release need).

Rémy


[tomcat] branch master updated: Simplify blocking read and write for NIO

2019-12-09 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 5bdd7d4  Simplify blocking read and write for NIO
5bdd7d4 is described below

commit 5bdd7d4712fac4e1af47421c3600b18fabc22ed6
Author: remm 
AuthorDate: Mon Dec 9 15:15:00 2019 +0100

Simplify blocking read and write for NIO

This does not remove or cleanup any of the code that is now unused
(NioSelectorPool, NioBlockingSlector, channel flush method, fields,
etc), it will be done after actual review.
I do not see any negative performance impact. Note: for performance
testing, use HTTP/1.1 (avoiding sendfile).
---
 java/org/apache/tomcat/util/net/NioEndpoint.java | 106 ---
 webapps/docs/changelog.xml   |   7 ++
 2 files changed, 84 insertions(+), 29 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java 
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index 6a0bfdc..7d4104a 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -40,6 +40,7 @@ import java.util.Iterator;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.net.ssl.SSLEngine;
@@ -773,6 +774,12 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 if 
(!socketWrapper.readOperation.process()) {
 closeSocket = true;
 }
+} else if (socketWrapper.blockReadDone != 
null) {
+if 
(socketWrapper.blockReadDone.compareAndSet(false, true)) {
+synchronized 
(socketWrapper.blockReadDone) {
+
socketWrapper.blockReadDone.notify();
+}
+}
 } else if (!processSocket(socketWrapper, 
SocketEvent.OPEN_READ, true)) {
 closeSocket = true;
 }
@@ -782,6 +789,12 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 if 
(!socketWrapper.writeOperation.process()) {
 closeSocket = true;
 }
+} else if (socketWrapper.blockWriteDone != 
null) {
+if 
(socketWrapper.blockWriteDone.compareAndSet(false, true)) {
+synchronized 
(socketWrapper.blockWriteDone) {
+
socketWrapper.blockWriteDone.notify();
+}
+}
 } else if (!processSocket(socketWrapper, 
SocketEvent.OPEN_WRITE, true)) {
 closeSocket = true;
 }
@@ -1025,6 +1038,9 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 private volatile long lastRead = System.currentTimeMillis();
 private volatile long lastWrite = lastRead;
 
+private AtomicBoolean blockReadDone = null;
+private AtomicBoolean blockWriteDone = null;
+
 public NioSocketWrapper(NioChannel channel, NioEndpoint endpoint) {
 super(channel, endpoint);
 pool = endpoint.getSelectorPool();
@@ -1215,24 +1231,37 @@ public class NioEndpoint extends 
AbstractJsseEndpoint
 if (socket instanceof ClosedNioChannel) {
 throw new ClosedChannelException();
 }
-if (block) {
-Selector selector = null;
-try {
-selector = pool.get();
-} catch (IOException x) {
-// Ignore
-}
+nRead = socket.read(to);
+if (nRead == -1) {
+throw new EOFException();
+}
+if (block && nRead == 0) {
+long timeout = getReadTimeout();
 try {
-nRead = pool.read(to, socket, selector, getReadTimeout());
-} finally {
-if (selector != null) {
-pool.put(selector);
+blockReadDone = new AtomicBoolean(false);
+registerReadInterest();
+synchronized (blockReadDone) {
+if (!blockReadDone.get()) {
+try {
+if (timeout > 0) {
+  

Re: [VOTE] Release Apache Tomcat 8.5.50

2019-12-09 Thread Rémy Maucherat
On Sat, Dec 7, 2019 at 8:54 PM Mark Thomas  wrote:

> The proposed Apache Tomcat 8.5.50 release is now available for voting.
>
> The major changes compared to the 8.5.49 release are:
>
> - Correct multiple regressions in the static resource caching related to
>   using URLs provided for cached resources
>
> - Improvements to the Realm interface and implementations
>
> - Bug fixes and improvements to the CORS filter
>
> 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.50/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1241/
>
> The tag is:
> https://github.com/apache/tomcat/tree/8.5.50
> c40ede65ea4fb44b1957ec482f28c7afa71f1b50
>
> The proposed 8.5.50 release is:
> [ ] Broken - do not release
> [X] Stable - go ahead and release as 8.5.50
>
> Great job on turning around these two releases !

Rémy


Re: [VOTE] Release Apache Tomcat 9.0.30

2019-12-09 Thread Rémy Maucherat
On Sat, Dec 7, 2019 at 6:24 PM Mark Thomas  wrote:

> The proposed Apache Tomcat 9.0.30 release is now available for voting.
>
> The major changes compared to the 9.0.29 release are:
>
> - Correct multiple regressions in the static resource caching related to
>   using URLs provided for cached resources
>
> - Improvements to the Realm interface and implementations
>
> - Bug fixes and improvements to the CORS filter
>
> 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.30/
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1240/
> The tag is:
> https://github.com/apache/tomcat/tree/9.0.30
> 4fab4cc012d0c31852e957d198cb0549f3d6074c
>
> The proposed 9.0.30 release is:
> [ ] Broken - do not release
> [X] Stable - go ahead and release as 9.0.30
>
> Rémy