We use ACETAO (http://download.dre.vanderbilt.edu/) as the CORBA implementation for our C++ server side and used Java8 to communicate with it. Now we want to upgrade to java 11+ but it lacks CORBA support. So we want to use Glassfish CORBA for the Java side, but we have a blocker issue.
Our Glassfish CORBA client encounters a CORBA.MARSHAL error when unmarshalling a UserException received from a servant written with C++ and ACETAO CORBA.
The exception is as follows:
org.omg.CORBA.MARSHAL: FINE: 00810007 Underflow in BufferManagerReadStream after last fragment in message vmcid: OMG minor code: 7 completed:No
At com.sun.proxy.$Proxy3.endOfStream(Unkown Source)
At com.sun.corba.ee.impl.encoding.BufferManagerReadStream.underflow(BufferManagerReadStream.java:101)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_1.grow(CDRInputSteram_1_1.java:82)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_octet_array(CDRInputStream_1_0.java:490)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.getConvertedChars(CDRInputSteram_1_0.java:2053)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.internalReadString(CDRInputStream_1_0.java:431)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readStringOrIndirection(CDRInputSteram_1_0.java:417)
At com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_string(CDRInputStream_1_0.java:440)
At com.sun.corba.ee.impl.encoding.CDRInputObject.read_string(CDRInputObject.java:359)
At myidl.idl.MyIDL.MyUserExceptionHelper.read(MyUserExceptionHelper.java:62)
At myclient.MyClient.main(MyClient.java:37)
the problem can be regenerated easily by writing simplest servant that throws a user exception using TAO, and a client with glassfish CORBA. i've added my example code and the Makefiles as attachment.
thanks in advance.
codes.txt