Neha Sharma created HTTPASYNC-139:
-------------------------------------

             Summary: 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


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

Reply via email to