RMI code fails with "NoClassDefFoundError: java/sql/Timestamp" migrating to OpenJDK21
Issue
- RMI code fails migrating from OpenJDK8 to OpenJDK21:
java.rmi.ServerError: Error occurred in server thread; nested exception is:
java.lang.NoClassDefFoundError: java/sql/Timestamp
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:389)
sun.rmi.transport.Transport$1.run(Transport.java:200)
sun.rmi.transport.Transport$1.run(Transport.java:197)
java.security.AccessController.doPrivileged(AccessController.java:714)
sun.rmi.transport.Transport.serviceCall(Transport.java:196)
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
java.security.AccessController.doPrivileged(AccessController.java:400)
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
java.lang.Thread.run(Thread.java:1583)
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:304)
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:280)
sun.rmi.server.UnicastRef.invoke(UnicastRef.java:382)
sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:158)
com.example.MyClass.createRMIConnection(MyClass.java:364)
com.example.MyClass.init(MyClass.java:318)
...
Environment
- OpenJDK21
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.