Java 1.8 u191 - ошибка подключения - PullRequest
0 голосов
/ 04 декабря 2018

После обновления версии Java на компьютере с Windows 10 x64 с Java 1.8u161 до 1.8u191 я столкнулся с несколькими проблемами.После некоторой отладки я придумал следующий фрагмент кода, который демонстрирует это.Если побежал с обновлением 161 все работает нормально.Выполнение той же части кода с обновлением 191 приводит к истечению времени ожидания соединения при попытке получить InputStream.Я попытался использовать сертификаты установки обновления 161, которые тоже не помогли.Запуск приложения с включенной сетевой отладкой (-Djavax.net.debug = all) не показывал значительных различий, пока не получен доступ к InputStream (конечно, некоторые сертификаты и шифры различаются).Похоже, что рукопожатие SSL не выполняется при обновлении 191 (есть соответствующие выходные данные отладки для обновления 161).Кто-нибудь может подтвердить это или сказать мне, что я делаю здесь не так?

package example;

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import java.io.InputStream;

public class ConnectionTimeout {

  public static void main(String[] args) throws Exception {

    System.err.println("java.version=" + System.getProperty("java.version"));

    HttpURLConnection.setFollowRedirects(false);

    URL           url        = new URL("https://heise.de");
    URLConnection connection = url.openConnection();
    System.err.println("connectiontype: " + connection.getClass().getName());

    // timeout on 1.8-191; not on 1.8-161
    InputStream instream = connection.getInputStream();
    System.err.println("instream:" + instream.getClass().getName());
    instream.close();

  }

}

В соответствии с запросом вот трассировка стека:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)
    at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
    at example.ConnectionTimeout.main(ConnectionTimeout.java:24)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...