Refer to bug 6378568 which describes a Java client connecting to a server which, turns out, has an incomplete/incorrect implementation of certain ciphersuites (see Comment#4 in 6378568). While the main problem is on the non-Java server side, JSSE should not crash with a NPE as shown in the exception trace. Instead it should handle the protocol error in some graceful way, such as throwing an exception which describes the situation in english so customers can diagnose what happened. javax.net.ssl.SSLException: java.lang.NullPointerException at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1476) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1443) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1426) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:64) at java.io.OutputStream.write(OutputStream.java:58) at RunCompression.runTests(RunCompression.java:128) at RunCompression.main(RunCompression.java:265) Caused by: java.lang.NullPointerException at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:532) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:160) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:619) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) ... 3 more
|