Search code examples
javahttprequesturlconnectionstack-overflow

why does the call to java.net.URLConnection.getHeaderField(0) result in a StackOverflowError?


For some reason, when the code makes a request using an HTTP proxy, the call to "getHeaderField(0)", which I understand is supposed to return a String that represents the server's response code, results in a StackOverflowError.

There are no recursive calls in my code. It's essentially just this:

java.net.Authenticator.setDefault(new java.net.Authenticator()
{
   @Override
   protected java.net.PasswordAuthentication getPasswordAuthentication()
   {
          return new java.net.PasswordAuthentication(<user>, <pass>.toCharArray());
   }
});
java.net.Proxy proxy = new java.net.Proxy(Proxy.Type.HTTP, new InetSocketAddress(<host>, <port>));

java.net.URLConnection conn = new java.net.URL("http://www.yahoo.com").openConnection(proxy);

System.out.println(conn.getHeaderField(0));//StackOverFlowError

The printed stack trace is the following:

java.lang.StackOverflowError
    at java.net.SocketImpl.<init>(SocketImpl.java:27)
    at java.net.PlainSocketImpl.<init>(PlainSocketImpl.java:95)
    at java.net.Socket.<init>(Socket.java:126)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:149)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
    at sun.net.www.http.HttpClient$4.run(HttpClient.java:458)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.http.HttpClient.privilegedOpenServer(HttpClient.java:440)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:521)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:310)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:302)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.proxiedConnect(AbstractDelegateHttpsURLConnection.java:130)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1586)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:656)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
....
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1595)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)

Solution

  • This looks like a known bug in Java (JDK-6670868):

    There is an issue in the tunneling/Http retry code whereby a proxy requiring authentication, if it gives a bad response after the initial 407, may cause the HTTPClient to perform recursive calls to parseHTTP until StackOverFlow

    The bug report lists it as fixed in Java 8b01.