United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4962866 : Interop broken b/w 1.4.2_04 and 1.4.1,1.5 for TreeSet, BigInteger, BigDecimal

Details
Type:
Bug
Submit Date:
2003-12-03
Status:
Closed
Updated Date:
2004-02-18
Project Name:
JDK
Resolved Date:
2004-12-10
Component:
other-libs
OS:
solaris_9,solaris_1
Sub-Component:
corba:idl
CPU:
sparc
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.2,1.4.2_04
Fixed Versions:
1.4.2 (04)

Related Reports
Duplicate:
Relates:

Sub Tasks

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


                                     
2004-06-14
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);
      }
                                     
2004-06-11
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
                                     
2004-02-09



Hardware and Software, Engineered to Work Together