Hello, I hope this is the right place to report potential bugs. When updating to version 5.4 our Java 8 tests fail with the following exception:
java.lang.UnsupportedOperationException: method is not supported because of the TLS half-close policy at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:765) at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:743) at org.apache.hc.core5.http.impl.io.BHttpConnectionBase.close(BHttpConnectionBase.java:255) at org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.close(DefaultBHttpClientConnection.java:71) at org.apache.hc.client5.http.impl.io.DefaultManagedHttpClientConnection.close(DefaultManagedHttpClientConnection.java:176) at org.apache.hc.core5.pool.PoolEntry.discardConnection(PoolEntry.java:180) at org.apache.hc.core5.pool.StrictConnPool$PerRoutePool.shutdown(StrictConnPool.java:839) at org.apache.hc.core5.pool.StrictConnPool.close(StrictConnPool.java:142) at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.close(PoolingHttpClientConnectionManager.java:277) at org.apache.hc.client5.http.impl.classic.InternalHttpClient.close(InternalHttpClient.java:198) at org.apache.hc.client5.http.impl.classic.InternalHttpClient.close(InternalHttpClient.java:188) at J8HttpsErrorTest.main(J8HttpsErrorTest.java:21) It seems to be a bug, but please let me know if it is a mistake on our side. I have put together the following test class, which fails in Java 8 with the above exception, but finishes correctly with Java 11 (tested on Windows 10, but the Java 8 exception also occurs on Linux in our integration): import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; public class J8HttpsErrorTest { public static void main(String[] args) { System.out.println(System.getProperty("java.vm.vendor") + " " + System.getProperty("java.vm.name") + " " + System.getProperty("java.vm.version")); try { CloseableHttpClient client = HttpClientBuilder.create().build(); String responseStr = client.execute(new HttpGet(https://www.google.com/), response -> { byte[] content = new byte[1024]; int length = response.getEntity().getContent().read(content); // just read the first view bytes to show the connection works String str = new String(content, 0, length); response.close(); return str; }); System.out.println("Sucessfully loaded: " + responseStr.replaceAll(file://s, " ")); System.out.println(">>>"); client.close(); // this causes the ExceUnsupportedOperationExceptionption in Java 8 System.out.println("<<<"); // <== success expected, except for Java 8 } catch (UnsupportedOperationException e) { System.out.println("!!!"); e.printStackTrace(System.out); // <== exception expected for Java 8 } catch (Throwable e) { System.out.println("!!!!!"); e.printStackTrace(System.out); // unexpected! } } } --------------------------------------------------------------------- To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org