[omniORB] OmniORB 2.6.0 with ORBacus Java

Gary D. Duzan gdd0@gte.com
Mon, 19 Oct 1998 14:44:27 -0400


   FYI, I've just uncovered an interoperability problem between ORBacus
for Java (3.0 and apparantly 3.1b1) and OmniORB 2.6.0.  Due to an error
in buffer management in ORBacus, it sometimes leaves trailing nulls at
the end of an IOP. Since ORBacus generates version 1.0 IIOP, OmniORB
rightly flags this as an error, throwing CORBA:MARSHAL. (See CORBA 2.1,
p. 12-35, paragraph 2, or CORBA 2.2, p. 13-25, center paragraph.)
   The included patch appears to correct ORBacus' behavior for 3.0.
Version 3.1b1 appears to do the same thing, so the fix should be
similar.

					Gary Duzan
					GTE Laboratories



*** ob/src/com/ooc/CORBA/OutputStream.java.orig	Tue Jun  2 09:50:50 1998
--- ob/src/com/ooc/CORBA/OutputStream.java	Mon Oct 19 13:35:21 1998
***************
*** 1186,1191 ****
      public synchronized byte[]
      _OB_buffer()
      {
! 	return buf_;
      }
  }
--- 1186,1200 ----
      public synchronized byte[]
      _OB_buffer()
      {
! 	if(buf_.length == count_)
! 	{
! 	    return buf_;
! 	}
! 	else
! 	{
! 	    byte[] tmpBuf = new byte[count_];
! 	    System.arraycopy(buf_, 0, tmpBuf, 0, count_);
! 	    return tmpBuf;
! 	}
      }
  }