Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2042190 | 1.4.0 | Everett Anderson | P4 | Closed | Fixed | beta2 |
There is an interoperability issue between JDK 1.3 and JDK 1.3.1 in the following two failure scenarios:
Failure scenario 1:
1) JDK 1.3.1 server which hasn't connected to JDK 1.3 or JDK 1.3.1 yet
2) JDK 1.3 client makes a call
3) JDK 1.3.1 client tries to send a custom marshaled object which calls
writeUTF/readUTF on the ObjectOutputStream/ObjectInputStream
--> MARSHAL exception
Failure scenario 2:
1) JDK 1.3.1 server which hasn't connected to JDK 1.3 or JDK 1.3.1 yet
2) JDK 1.3.1 client makes a call
3) JDK 1.3 client tries to send a custom marshaled object which calls
writeUTF/readUTF on the ObjectOutputStream/ObjectInputStream
Note: There was a bug in JDK 1.3's RMI-IIOP implementation in which writeUTF and readUTF couldn't handle Strings with characters greater than 8 bits. This was fixed in JDK 1.3.1 with the exception of the above interop problem with JDK 1.3.
-----
This happens because a reference to the stream class is kept in a static variable in com.sun.corba.se.internal.io.ValueHandlerImpl.CreateIIOPInputStream and CreateIIOPOutputStream. If JDK 1.3 connects first, the variable is permanently set to the JDK 1.3 stream class.
************************************************************************
muthu.anbumani@eng 2001-08-02
Verification of Interop Test
tests/product/serial/interop
between ladybird (jdk 1.3.1_01)
and kestrel(jdk1.3.0) Done Successfully
-Build: j2sdk-1_3_1_01-fcs-bin-solsparc-27_jun_2001
-Build: j2sdk1_3_0fcs-c-bin-solsparc-apr_27
*************************************************************************
Failure scenario 1:
1) JDK 1.3.1 server which hasn't connected to JDK 1.3 or JDK 1.3.1 yet
2) JDK 1.3 client makes a call
3) JDK 1.3.1 client tries to send a custom marshaled object which calls
writeUTF/readUTF on the ObjectOutputStream/ObjectInputStream
--> MARSHAL exception
Failure scenario 2:
1) JDK 1.3.1 server which hasn't connected to JDK 1.3 or JDK 1.3.1 yet
2) JDK 1.3.1 client makes a call
3) JDK 1.3 client tries to send a custom marshaled object which calls
writeUTF/readUTF on the ObjectOutputStream/ObjectInputStream
Note: There was a bug in JDK 1.3's RMI-IIOP implementation in which writeUTF and readUTF couldn't handle Strings with characters greater than 8 bits. This was fixed in JDK 1.3.1 with the exception of the above interop problem with JDK 1.3.
-----
This happens because a reference to the stream class is kept in a static variable in com.sun.corba.se.internal.io.ValueHandlerImpl.CreateIIOPInputStream and CreateIIOPOutputStream. If JDK 1.3 connects first, the variable is permanently set to the JDK 1.3 stream class.
************************************************************************
muthu.anbumani@eng 2001-08-02
Verification of Interop Test
tests/product/serial/interop
between ladybird (jdk 1.3.1_01)
and kestrel(jdk1.3.0) Done Successfully
-Build: j2sdk-1_3_1_01-fcs-bin-solsparc-27_jun_2001
-Build: j2sdk1_3_0fcs-c-bin-solsparc-apr_27
*************************************************************************
- backported by
-
JDK-2042190 JDK 1.3 <-> JDK 1.3.1 interop issue with writeUTF/readUTF in RMI-IIOP
- Closed
-
JDK-2042191 JDK 1.3 <-> JDK 1.3.1 interop issue with writeUTF/readUTF in RMI-IIOP
- Closed