This is to let you know about an issue caused in OpenJDK 8: 1.8.0.252 build. In Apigee OPDK 4.19.06 deployments, if OpenJDK 8: 1.8.0.252 release is used two known issues will occur:
1) API requests sent by Apigee Message Processors to Target Endpoints using TLS will fail with the following exception:
java.lang.NoSuchFieldError: nullSession at sun.security.ssl.ClientHandshaker.getKickstartMessage(ClientHandshaker.java:1350) at sun.security.ssl.Handshaker.kickstart(Handshaker.java:1117) at sun.security.ssl.SSLEngineImpl.kickstartHandshake(SSLEngineImpl.java:736) at sun.security.ssl.SSLEngineImpl.beginHandshake(SSLEngineImpl.java:758) at com.apigee.nio.SSLTransport.start(SSLTransport.java:103) at com.apigee.nio.ClientChannel.enableSSL(ClientChannel.java:182) at com.apigee.protocol.http.HTTPClient$Context.onConnect2(HTTPClient.java:833) at com.apigee.protocol.http.HTTPClient$Context.onConnect(HTTPClient.java:807) at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:206)
2) If TLS is enabled in the Management Server, Management Server will fail to start with the following error:
java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/ALPN$ServerProvider at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
Solved! Go to Solution.
The first issue has been fixed by Apigee in OPDK v4.19.06.07 patch release. The second issue with the Management Server is still being investigated at the time this post is being written on 1st July 2020 (and as of updated on 7th July 2020).
Therefore, one of the following options could be followed to overcome above issues for the moment:
Background Information
Apigee Message Processor and Management Server use Eclipse Jetty HTTP library [1] and ALPN (Application-Layer Protocol Negotiation Extension for TLS) [2]. The way Jetty initializes ALPN has changed in OpenJDK 1.8.0_252 release [3]. As a result, Apigee Message Processor and Management Server encountered above issues with OpenJDK 1.8.0_252 release.
References
The first issue has been fixed by Apigee in OPDK v4.19.06.07 patch release. The second issue with the Management Server is still being investigated at the time this post is being written on 1st July 2020 (and as of updated on 7th July 2020).
Therefore, one of the following options could be followed to overcome above issues for the moment:
Background Information
Apigee Message Processor and Management Server use Eclipse Jetty HTTP library [1] and ALPN (Application-Layer Protocol Negotiation Extension for TLS) [2]. The way Jetty initializes ALPN has changed in OpenJDK 1.8.0_252 release [3]. As a result, Apigee Message Processor and Management Server encountered above issues with OpenJDK 1.8.0_252 release.
References
An update.
The "second issue" Imesh described, the one relating to the Management server and compatibility with 1.8.0_252, has been fixed. The reference number is b/159108299 .
release | first patch level containing the fix | date available | link to release notes |
4.50.00 | 4.50.00.01 | August 6, 2020 | link |
4.19.06 | 4.19.06.08 | August 4, 2020 | link |
Any patch level after these, will also contain the fix.