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
|