[ https://issues.apache.org/jira/browse/HTTPASYNC-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Kalnichevski resolved HTTPASYNC-139. ----------------------------------------- Resolution: Not A Problem HttpClient of all versions supports plain tunnel connections only. It does not support CONNECT handshake over TLS connections. Oleg > CloseableHttpAsyncClient not working when a http/https proxy is provided > ------------------------------------------------------------------------ > > Key: HTTPASYNC-139 > URL: https://issues.apache.org/jira/browse/HTTPASYNC-139 > Project: HttpComponents HttpAsyncClient > Issue Type: Bug > Affects Versions: 4.1.3 > Reporter: Neha Sharma > Priority: Major > Attachments: AsyncClientCustomSSL.java > > > We are trying to integrate a vertx based https proxy (to a https target) with > CloseableHttpAsyncClient. Tried below with same error > # Setting the routeplanner on the CloseableHttpAsyncClient > # Setting the proxy on the CloseableHttpAsyncClient > # Setting the proxy on the http post > {code:java} > 18:38:29.443 [I/O dispatcher 1] DEBUG > org.apache.http.impl.nio.client.InternalIODispatch - http-outgoing-0 [ACTIVE] > Request ready > java.util.concurrent.ExecutionException: java.lang.IllegalStateException: I/O > session is already upgraded to TLS/SSL > at org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:70) > at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:80) > at > org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70) > at > com.datacard.dcpi.AsyncClientCustomSSL.main(AsyncClientCustomSSL.java:140) > Caused by: java.lang.IllegalStateException: I/O session is already upgraded > to TLS/SSL > at org.apache.http.util.Asserts.check(Asserts.java:34) > at > org.apache.http.nio.conn.ssl.SSLIOSessionStrategy.upgrade(SSLIOSessionStrategy.java:164) > at > org.apache.http.nio.conn.ssl.SSLIOSessionStrategy.upgrade(SSLIOSessionStrategy.java:64) > at > org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.upgrade(PoolingNHttpClientConnectionManager.java:433) > at > org.apache.http.impl.nio.client.AbstractClientExchangeHandler.onRouteUpgrade(AbstractClientExchangeHandler.java:208) > at > org.apache.http.impl.nio.client.MainClientExec.generateRequest(MainClientExec.java:181) > at > org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.generateRequest(DefaultClientExchangeHandlerImpl.java:134) > at > org.apache.http.nio.protocol.HttpAsyncRequestExecutor.requestReady(HttpAsyncRequestExecutor.java:185) > at > org.apache.http.impl.nio.client.InternalRequestExecutor.requestReady(InternalRequestExecutor.java:73) > at > org.apache.http.impl.nio.DefaultNHttpClientConnection.produceOutput(DefaultNHttpClientConnection.java:287) > at > org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:86) > at > org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:39) > at > org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:152) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:188) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:341) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) > at > org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) > at java.lang.Thread.run(Thread.java:745) > 18:38:29.448 [I/O dispatcher 1] DEBUG > org.apache.http.impl.nio.client.InternalIODispatch - http-outgoing-0 [ACTIVE] > Exception > java.lang.IllegalStateException: I/O session is already upgraded to TLS/SSL > at org.apache.http.util.Asserts.check(Asserts.java:34) > at > org.apache.http.nio.conn.ssl.SSLIOSessionStrategy.upgrade(SSLIOSessionStrategy.java:164) > at > org.apache.http.nio.conn.ssl.SSLIOSessionStrategy.upgrade(SSLIOSessionStrategy.java:64) > at > org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.upgrade(PoolingNHttpClientConnectionManager.java:433) > at > org.apache.http.impl.nio.client.AbstractClientExchangeHandler.onRouteUpgrade(AbstractClientExchangeHandler.java:208) > at > org.apache.http.impl.nio.client.MainClientExec.generateRequest(MainClientExec.java:181) > at > org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.generateRequest(DefaultClientExchangeHandlerImpl.java:134) > at > org.apache.http.nio.protocol.HttpAsyncRequestExecutor.requestReady(HttpAsyncRequestExecutor.java:185) > at > org.apache.http.impl.nio.client.InternalRequestExecutor.requestReady(InternalRequestExecutor.java:73) > at > org.apache.http.impl.nio.DefaultNHttpClientConnection.produceOutput(DefaultNHttpClientConnection.java:287) > at > org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:86) > at > org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:39) > at > org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:152) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:188) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:341) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) > at > org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) > at java.lang.Thread.run(Thread.java:745) > {code} > Overriding the upgrade method, exception below > {code:java} > 18:44:02.731 [I/O dispatcher 1] DEBUG > org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager - > Connection released: [id: http-outgoing-0][route: > {tls}->https://127.0.0.1:9612->https://google.com:443][total kept alive: 0; > route allocated: 0 of 50; total allocated: 0 of 100] > 18:44:02.731 [I/O dispatcher 1] DEBUG > org.apache.http.impl.nio.client.InternalIODispatch - http-outgoing-0 > [CLOSED]: Disconnected > java.util.concurrent.ExecutionException: > org.apache.http.ConnectionClosedException: Connection closed > at org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:70) > at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:80) > at > org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70) > at > com.datacard.dcpi.AsyncClientCustomSSL.main(AsyncClientCustomSSL.java:143) > Caused by: org.apache.http.ConnectionClosedException: Connection closed > at > org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:345) > at > org.apache.http.impl.nio.client.InternalRequestExecutor.endOfInput(InternalRequestExecutor.java:132) > at > org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261) > at > org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) > at > org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) > at > org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) > at > org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) > at > org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) > at > org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) > at java.lang.Thread.run(Thread.java:745) > 18:44:02.732 [main] DEBUG > org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager - > Connection manager is shutting down > 18:44:02.735 [main] DEBUG > org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager - > Connection manager shut down > {code} > Sample code is attached (masked the ip and the urls) -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org