JDK-4962866 : Interop broken b/w 1.4.2_04 and 1.4.1,1.5 for TreeSet, BigInteger, BigDecimal
  • Type: Bug
  • Component: other-libs
  • Sub-Component: corba:idl
  • Affected Version: 1.4.2,1.4.2_04
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_1,solaris_9
  • CPU: sparc
  • Submitted: 2003-12-03
  • Updated: 2004-02-18
  • Resolved: 2004-12-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2 04Fixed
Related Reports
Duplicate :  
Relates :  
Description
******************************************************************************
###@###.### 2003-12-03

This is a regression in 1.4.2_04 update release. Interop for datatypes java.util.TreeSet, java.math.BigInteger and java.math.BigDecimal is broken b/w 1.4.2_04 and J2SE 1.4.1, 1.5 and S1AS 8.0 releases.

These work fine for 1.4.2_03. Fixes for serialization bug 4898230 which was integrated into 1.4.2_04 may have caused the regression.

tests :
/java/idl/ws/rip/rip_test_master_generic/tests/interoperability/serialization
/java/idl/ws/rip/rip_test_master_generic/tests/interoperability/rmiiiop

********************************************************************************

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.2_04 FIXED IN: 1.4.2_04 INTEGRATED IN: 1.4.2_04 VERIFIED IN: 1.4.2_04
14-06-2004

SUGGESTED FIX ------- IIOPOutputStream.java ------- *** /tmp/sccs..Vaiov Thu Dec 4 17:42:34 2003 --- IIOPOutputStream.java Thu Dec 4 17:32:05 2003 *************** *** 91,98 **** * @since JDK1.1.6 */ public final void writeObjectDelegate(Object obj) ! /* throws IOException */ { Util.writeAbstractObject((OutputStream)orbStream, obj); //orbStream.write_value((java.io.Serializable)obj); } --- 91,99 ---- * @since JDK1.1.6 */ public final void writeObjectDelegate(Object obj) ! throws IOException { + writeUDOWI(); Util.writeAbstractObject((OutputStream)orbStream, obj); //orbStream.write_value((java.io.Serializable)obj); }
11-06-2004

EVALUATION This seems to be related to 4898230 ###@###.### 2003-12-03 the writeObjectDelegate method in IIOPOutputStream should be inserted with the new writeUDOWI() method too. this has fixed the TreeSet problem. however the BigInteger and BigDecimal problem is different. after 4898230 BigInteger will now write out "false" as the defaultWriteObjectIndicator this seems to break the current rip-int workspace. in old workspace the InputStream side doesnt really use this flag so it works fine. it seems "false" is the correct value for BigInteger - its writeObject doesnt call defaultWriteObject, so i suspect that this is some problem in rip-int workspace's IIOPInputStream side. i have fixed the TreeSet problem in 1.4.2_04. i have talked to Hemanth and according to him the serialization for an object which only called writeFields not defaultWriteObject should have a "false" as the useDefaultWriteObjectIndicator. so it seems that the BigInteger and BigDecimal failure should be fixed after the rip-int workspace is fixed. so i have marked this one as "fixed" for now ###@###.### 2004-01-06 this bug will only track the TreeSet problem, the BigInteger(BigDecimal) problem is tracked under 4966458 so in this sense this bug is not applicable to tiger. ###@###.### 2004-02-09
09-02-2004