Uploaded image for project: 'HttpComponents HttpClient'
  1. HttpComponents HttpClient
  2. HTTPCLIENT-2308

"Invalid Proxy" SSL Connection Failures in 5.2.2

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 5.2.2
    • None
    • HttpClient (classic)
    • None

    Description

      Performing a simple HTTPS request using the classic client in 5.2.2 fails with java.lang.IllegalArgumentException: Invalid Proxy. A simple example is attached which works correctly using HttpClient 5.2.1, and fails with 5.2.2.

      I believe the failure come from org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator, in the connect() method. Specifically, the line:

      Socket sock = sf.createSocket(proxy, context);

      should instead be:

      Socket sock = (proxy != null) ? sf.createSocket(proxy, context) : sf.createSocket(context);

      When I run this example with 5.2.2, I get:
      {{Exception in thread "main" java.lang.IllegalArgumentException: Invalid Proxy
      at java.base/java.net.Socket.<init>(Socket.java:216)
      at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.createSocket(SSLConnectionSocketFactory.java:208)
      at org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
      at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:447)
      at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:162)
      at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:172)
      at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:142)
      at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
      at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:192)
      at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
      at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96)
      at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
      at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152)
      at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
      at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:115)
      at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
      at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170)
      at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:123)
      at com.example.httpclient.ClassicClientUseCase.main(ClassicClientUseCase.java:16)
      }}

      Attachments

        1. ClassicClientUseCase.java
          0.8 kB
          Jim Gajnak

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jim-jobcase Jim Gajnak
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: