[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;
! }
}
}