Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6384541

improve error handling when faced with protocol errors

XMLWordPrintable

    • b81
    • sparc
    • solaris

        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

              andreas Andreas Sterbenz
              duke J. Duke
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: