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

NullPointerException in sun.security.ssl.OutputRecord.changeWriteCiphers

XMLWordPrintable

    • b25
    • x86
    • os_x
    • Not verified

        ADDITIONAL SYSTEM INFORMATION :
        MacOS Mojave

        A DESCRIPTION OF THE PROBLEM :
        I'm getting a NullPointerException when trying to establish an SSL connection from a Java 11 client to a C++ server running on the same macOS Mojave platform. The C++ server uses the macOS SecureTransport APIs for SSL communications and only access TLS connection up to 1.1 (rejects TLS 1.2/1.3).


        REGRESSION : Last worked in version 8u191

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        brew install ice
        git clone https://github.com/zeroc-ice/ice-demos -b 3.7
        cd ice-demos/java
        ./gradlew build
        cd Glacier2/callback
        java -jar build/libs/server.jar &
        glacier2router --Ice.Config=config.glacier2 --IceSSL.ProtocolVersionMax=tls1_1 &
        java -jar build/libs/client.jar

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Successful connection establishment after filling username / password.
        ACTUAL -
        !! 11/9/18 11:16:21:951 Client: error: Ice.ThreadPool.Client-0: exception in `Ice.ThreadPool.Client':
           java.lang.NullPointerException
            at java.base/sun.security.ssl.OutputRecord.changeWriteCiphers(OutputRecord.java:173)
            at java.base/sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer.produce(ChangeCipherSpec.java:112)
            at java.base/sun.security.ssl.Finished$T12FinishedProducer.onProduceFinished(Finished.java:392)
            at java.base/sun.security.ssl.Finished$T12FinishedProducer.produce(Finished.java:376)
            at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
            at java.base/sun.security.ssl.ServerHelloDone$ServerHelloDoneConsumer.consume(ServerHelloDone.java:173)
            at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
            at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
            at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1065)
            at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1052)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:999)
            at com.zeroc.IceSSL.TransceiverI.handshakeNonBlocking(TransceiverI.java:343)
            at com.zeroc.IceSSL.TransceiverI.initialize(TransceiverI.java:61)
            at com.zeroc.Ice.ConnectionI.initialize(ConnectionI.java:2111)
            at com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1093)
            at com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:417)
            at com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:12)
            at com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:786)
            at java.base/java.lang.Thread.run(Thread.java:834)


        CUSTOMER SUBMITTED WORKAROUND :
        Disabling TLS 1.2 and 1.3 in the Java client:
        java -jar build/libs/client.jar --IceSSL.Protocols="TLS1_1"


        FREQUENCY : always


              xuelei Xuelei Fan
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: