Java SSLSocketImpl.GetEnablediPhone套件中的NPE

Java SSLSocketImpl.GetEnablediPhone套件中的NPE,java,ssl,stack-trace,Java,Ssl,Stack Trace,我在多个worker中使用apachehttp客户机,看起来存在某种竞争条件(stacktrace在末尾)。我很困惑,因为谷歌搜索stacktrace并没有提供任何提示。在Linux上使用Java 1.7.0-b147 64位 我做错什么了吗 对于Sun的SSLSocket,是否有已知的、有效的替代方案 编辑: 可能不太有用,但调用代码如下: public String call() { HttpUriRequest request = new HttpGet(aUrl); Ht

我在多个worker中使用apachehttp客户机,看起来存在某种竞争条件(stacktrace在末尾)。我很困惑,因为谷歌搜索stacktrace并没有提供任何提示。在Linux上使用Java 1.7.0-b147 64位

  • 我做错什么了吗
  • 对于Sun的
    SSLSocket
    ,是否有已知的、有效的替代方案
  • 编辑: 可能不太有用,但调用代码如下:

    public String call() {
        HttpUriRequest request = new HttpGet(aUrl);
        HttpResponse response = httpClient.execute(request);
        StatusLine statusLine = response.getStatusLine();
        return EntityUtils.toString(response.getEntity());
    }
    
    其中httpClient被共享给所有可调用项

    Stacktrace:

    java.lang.NullPointerException
     at sun.security.ssl.SSLSocketImpl.getEnabledCipherSuites(SSLSocketImpl.java:2320)
     at javax.net.ssl.SSLSocket.getSSLParameters(SSLSocket.java:614)
     at sun.security.ssl.SSLSocketImpl.getSSLParameters(SSLSocketImpl.java:2406)
     at sun.security.ssl.SSLAlgorithmConstraints.<init>(SSLAlgorithmConstraints.java:65)
     at sun.security.ssl.Handshaker.init(Handshaker.java:236)
     at sun.security.ssl.Handshaker.<init>(Handshaker.java:191)
     at sun.security.ssl.ClientHandshaker.<init>(ClientHandshaker.java:104)
     at sun.security.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:1217)
     at sun.security.ssl.SSLSocketImpl.doneConnect(SSLSocketImpl.java:634)
     at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:608)
     at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
     at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
     at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) 
    
    java.lang.NullPointerException
    位于sun.security.ssl.SSLSocketImpl.getEnablediPhone套件(SSLSocketImpl.java:2320)
    位于javax.net.ssl.SSLSocket.getSSLParameters(SSLSocket.java:614)
    位于sun.security.ssl.SSLSocketImpl.getSSLParameters(SSLSocketImpl.java:2406)
    位于sun.security.ssl.sslalgorithconstraints.(sslalgorithconstraints.java:65)
    位于sun.security.ssl.Handshaker.init(Handshaker.java:236)
    位于sun.security.ssl.Handshaker.(Handshaker.java:191)
    位于sun.security.ssl.ClientHandshaker(ClientHandshaker.java:104)
    位于sun.security.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:1217)
    位于sun.security.ssl.SSLSocketImpl.doneConnect(SSLSocketImpl.java:634)
    位于sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:608)
    位于org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
    位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    位于org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    位于org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
    位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
    位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
    
    这是JDK的问题。我们在运行JDK 1.7.0_u4时遇到了这个问题,在升级到JDK 1.7.0_u25后得到了解决。

    您哪里做错了?在什么代码中?@EJP在多线程中使用HttpClient for HTTPS;虽然我认为HttpClient不是问题的原因,但是您如何接受提示并发布代码?你还指望得到什么帮助?谢谢你的提示。我将尝试升级。你知道Oracle的跟踪器上是否有相关的bug报告吗?我在Oracle的跟踪器中找不到它。Java7是在两年多前发布的,发布候选版本甚至更老。升级到更新的JDK版本可能是个好主意。