When using a 12.3 uc4.jar file to run the Application Interface (sometimes called java api) connecting to a 21.0 JCP (on a port like 8443) throws the following error:
java.io.IOException: End of stream reading message
at com.uc4.communication.Connection.readByteBuffer(Connection.java:1008)
at com.uc4.communication.Connection.readMessage(Connection.java:712)
at com.uc4.communication.Connection.<init>(Connection.java:307)
at com.uc4.communication.Connection.loadBalancing(Connection.java:623)
at com.uc4.communication.Connection.open(Connection.java:500)
at com.uc4.communication.Connection.open(Connection.java:430)
at com.uc4.communication.Connection.open(Connection.java:407)
at CreateJob1232_to_2104.CreateJob1232_to_2104(CreateJob1232_to_2104.java:61)
at CreateJob1232_to_2104.main(CreateJob1232_to_2104.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Release : 12.3.x
Only the 12.3.9 HF2 uc4.jar file can be used to connect to 21.0. It also must connect to a "regular" CP, not to the JCP. This is because the JCP requires a TLS enabled component which 12.3 did not have.