diff -Nru httpcomponents-core-4.4.14/debian/changelog httpcomponents-core-4.4.15/debian/changelog --- httpcomponents-core-4.4.14/debian/changelog 2021-09-17 08:18:48.000000000 +0000 +++ httpcomponents-core-4.4.15/debian/changelog 2022-05-02 16:28:19.000000000 +0000 @@ -1,3 +1,9 @@ +httpcomponents-core (4.4.15-1) unstable; urgency=medium + + * New upstream release + + -- Emmanuel Bourg Mon, 02 May 2022 18:28:19 +0200 + httpcomponents-core (4.4.14-2) unstable; urgency=medium * Track only the 4.x releases diff -Nru httpcomponents-core-4.4.14/httpcore/pom.xml httpcomponents-core-4.4.15/httpcore/pom.xml --- httpcomponents-core-4.4.14/httpcore/pom.xml 2020-11-26 18:46:36.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore/pom.xml 2021-12-03 08:25:30.000000000 +0000 @@ -28,7 +28,7 @@ org.apache.httpcomponents httpcomponents-core - 4.4.14 + 4.4.15 httpcore Apache HttpCore diff -Nru httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/HttpStatus.java httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/HttpStatus.java --- httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/HttpStatus.java 2020-11-24 20:08:06.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/HttpStatus.java 2021-02-07 20:39:48.000000000 +0000 @@ -156,6 +156,8 @@ int SC_LOCKED = 423; /** {@code 424 Failed Dependency} (WebDAV - RFC 2518) */ int SC_FAILED_DEPENDENCY = 424; + /** {@code 429 Too Many Requests} (Additional HTTP Status Codes - RFC 6585) */ + int SC_TOO_MANY_REQUESTS = 429; // --- 5xx Server Error --- diff -Nru httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java --- httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java 2020-11-24 20:08:06.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/impl/BHttpConnectionBase.java 2021-02-07 20:39:48.000000000 +0000 @@ -316,18 +316,6 @@ try { this.inBuffer.clear(); this.outbuffer.flush(); - try { - try { - socket.shutdownOutput(); - } catch (final IOException ignore) { - } - try { - socket.shutdownInput(); - } catch (final IOException ignore) { - } - } catch (final UnsupportedOperationException ignore) { - // if one isn't supported, the other one isn't either - } } finally { socket.close(); } diff -Nru httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/impl/EnglishReasonPhraseCatalog.java httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/impl/EnglishReasonPhraseCatalog.java --- httpcomponents-core-4.4.14/httpcore/src/main/java/org/apache/http/impl/EnglishReasonPhraseCatalog.java 2019-10-23 13:36:25.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore/src/main/java/org/apache/http/impl/EnglishReasonPhraseCatalog.java 2021-02-07 20:39:48.000000000 +0000 @@ -93,7 +93,7 @@ new String[3], // 1xx new String[8], // 2xx new String[8], // 3xx - new String[25], // 4xx + new String[30], // 4xx new String[8] // 5xx }; @@ -140,6 +140,8 @@ "Forbidden"); setReason(HttpStatus.SC_NOT_FOUND, "Not Found"); + setReason(HttpStatus.SC_TOO_MANY_REQUESTS, + "Too Many Requests"); setReason(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Internal Server Error"); setReason(HttpStatus.SC_NOT_IMPLEMENTED, diff -Nru httpcomponents-core-4.4.14/httpcore/src/test/java/org/apache/http/impl/TestBHttpConnectionBase.java httpcomponents-core-4.4.15/httpcore/src/test/java/org/apache/http/impl/TestBHttpConnectionBase.java --- httpcomponents-core-4.4.14/httpcore/src/test/java/org/apache/http/impl/TestBHttpConnectionBase.java 2019-10-23 13:36:25.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore/src/test/java/org/apache/http/impl/TestBHttpConnectionBase.java 2021-02-07 20:39:48.000000000 +0000 @@ -128,8 +128,6 @@ Mockito.verify(outStream, Mockito.times(1)).write( Matchers.any(), Matchers.anyInt(), Matchers.anyInt()); - Mockito.verify(socket, Mockito.times(1)).shutdownInput(); - Mockito.verify(socket, Mockito.times(1)).shutdownOutput(); Mockito.verify(socket, Mockito.times(1)).close(); conn.close(); diff -Nru httpcomponents-core-4.4.14/httpcore-ab/pom.xml httpcomponents-core-4.4.15/httpcore-ab/pom.xml --- httpcomponents-core-4.4.14/httpcore-ab/pom.xml 2020-11-26 18:46:36.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-ab/pom.xml 2021-12-03 08:25:30.000000000 +0000 @@ -28,7 +28,7 @@ org.apache.httpcomponents httpcomponents-core - 4.4.14 + 4.4.15 httpcore-ab Apache HttpCore Benchmarking Tool diff -Nru httpcomponents-core-4.4.14/httpcore-nio/pom.xml httpcomponents-core-4.4.15/httpcore-nio/pom.xml --- httpcomponents-core-4.4.14/httpcore-nio/pom.xml 2020-11-26 18:46:36.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/pom.xml 2021-12-03 08:25:30.000000000 +0000 @@ -28,7 +28,7 @@ org.apache.httpcomponents httpcomponents-core - 4.4.14 + 4.4.15 httpcore-nio Apache HttpCore NIO diff -Nru httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java --- httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java 2019-10-23 13:36:25.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java 2021-12-03 08:16:13.000000000 +0000 @@ -509,6 +509,8 @@ return; } this.status = CLOSING; + this.inbuf.clear(); + this.hasBufferedInput = false; if (this.outbuf.hasData()) { this.session.setEvent(EventMask.WRITE); } else { diff -Nru httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java --- httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java 2020-01-08 15:27:39.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java 2021-12-03 08:16:13.000000000 +0000 @@ -465,7 +465,11 @@ final SelectionKey key = entry.getSelectionKey(); final int eventMask = entry.getEventMask(); if (key.isValid()) { - key.interestOps(eventMask); + try { + key.interestOps(eventMask); + } catch (final CancelledKeyException ex) { + // ignore and move on + } } } } diff -Nru httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java --- httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java 2019-10-23 13:36:25.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionInputBufferImpl.java 2021-12-03 08:16:13.000000000 +0000 @@ -412,4 +412,9 @@ return found ? tmpBuffer.toString() : null; } + @Override + public void clear() { + super.clear(); + } + } diff -Nru httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java --- httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java 2019-10-23 13:36:25.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/SessionOutputBufferImpl.java 2021-12-03 08:16:13.000000000 +0000 @@ -307,4 +307,9 @@ } } + @Override + public void clear() { + super.clear(); + } + } diff -Nru httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java --- httpcomponents-core-4.4.14/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java 2020-10-21 16:03:54.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java 2021-02-07 20:39:48.000000000 +0000 @@ -368,7 +368,13 @@ // It is never generated by SSLEngine.getHandshakeStatus(). if (result != null && result.getHandshakeStatus() == HandshakeStatus.FINISHED) { if (this.handler != null) { - this.handler.verify(this.session, this.sslEngine.getSession()); + try { + this.handler.verify(this.session, this.sslEngine.getSession()); + } catch (final RuntimeException ex) { + // Some libraries can throw a plan RuntimeException from #verify method + // in case of a hostname verification failure in violation of the API contract + throw convert(ex); + } } } } diff -Nru httpcomponents-core-4.4.14/httpcore-osgi/pom.xml httpcomponents-core-4.4.15/httpcore-osgi/pom.xml --- httpcomponents-core-4.4.14/httpcore-osgi/pom.xml 2020-11-26 18:46:36.000000000 +0000 +++ httpcomponents-core-4.4.15/httpcore-osgi/pom.xml 2021-12-03 08:25:30.000000000 +0000 @@ -28,7 +28,7 @@ org.apache.httpcomponents httpcomponents-core - 4.4.14 + 4.4.15 httpcore-osgi Apache HttpCore OSGi bundle diff -Nru httpcomponents-core-4.4.14/pom.xml httpcomponents-core-4.4.15/pom.xml --- httpcomponents-core-4.4.14/pom.xml 2020-11-26 18:46:36.000000000 +0000 +++ httpcomponents-core-4.4.15/pom.xml 2021-12-03 08:25:30.000000000 +0000 @@ -33,7 +33,7 @@ 4.0.0 httpcomponents-core Apache HttpComponents Core - 4.4.14 + 4.4.15 Apache HttpComponents Core is a library of components for building HTTP enabled services http://hc.apache.org/httpcomponents-core-ga 2005 @@ -61,7 +61,7 @@ scm:git:https://git-wip-us.apache.org/repos/asf/httpcomponents-core.git scm:git:https://git-wip-us.apache.org/repos/asf/httpcomponents-core.git https://github.com/apache/httpcomponents-core/tree/${project.scm.tag} - 4.4.14 + 4.4.15 diff -Nru httpcomponents-core-4.4.14/RELEASE_NOTES.txt httpcomponents-core-4.4.15/RELEASE_NOTES.txt --- httpcomponents-core-4.4.14/RELEASE_NOTES.txt 2020-11-25 18:40:42.000000000 +0000 +++ httpcomponents-core-4.4.15/RELEASE_NOTES.txt 2021-12-03 08:16:32.000000000 +0000 @@ -1,3 +1,25 @@ +Release 4.4.15 +------------------- + +This is a maintenance release that corrects a number of defects discovered since release 4.4.14. + +Changelog +------------------- + +* HTTPCORE-695: Unhandled CancelledKeyException during processPendingInterestOps leads to + a shutdown of the underlying IOReactor. + Contributed by Kurtcebe Eroglu + +* HTTPCORE-687: Non-blocking SSL I/O session can enter a tight loop if the SSL session gets + closed by the protocol layer while there is still unprocessed data stuck in the protocol session + buffer. + Contributed by Oleg Kalnichevski + +* HTTPCORE-660: Convert RuntimeExceptions thrown by SSLSetupHandler#verify to SSLExceptions. + Contributed by Oleg Kalnichevski + + + Release 4.4.14 -------------------