[omniORB] Putting a Sequence into an Any and marshalling it

Gert Steenssens gsteenss@eps.agfa.be
Mon, 27 Jul 1998 10:28:50 +0200


Gary D. Duzan wrote:
> 
> In Message <35B8A385.75FC9306@eps.agfa.be> ,
>    "Gert Steenssens" <gsteenss@eps.agfa.be> wrote:
> 
> =>I've encountered a little problem while trying to put an 
> Unbounded Sequence into an Any 

> This sounds like the problem I reported earlier. Check out bug/patch
> #12 on the OmniORB News Page, or
> < http://www.orl.co.uk/omniORB/bugs/12.html >. Hopefully that will
> clear up the problem.


Well actually, I'm not sure it is...
I looked at the suggested patch, and it seems they want me to replace 
'this->length()' by 'member_tc->length()' in typeCode.cc, but the strange thing
is; line 663 already has 'member_tc->length()' in it. (or maybe the patch is the
otherway around ?)
I must say I downloaded the 2.5.0 ORB only last week, so probably it was already
patched for this bug ?
As far as I can tell either way the same thing happens with or without patch
applied...

I've traced through the omniORB code again, and what I can say is that the
Exception gets thrown in tcParseEngine.cc during a call to the
ParseEngine::parseUnion(MemBufferedStream& outBuf) method which starts at line
714.

The actual piece of code which generates the Exception is at 
line 833 -> 843 and looks like this:

if (finalTCpos > 0)    
{      
  setTCKind(finalTCK); setTCPos(finalTCpos);
  parseTC(outBuf);
}
else if(def >= 0 && defTCpos > 0) 
{
 setTCKind(defTCK); 
 setTCPos(defTCpos);
 parseTC(outBuf);
}  
else throw CORBA::MARSHAL(0,CORBA::COMPLETED_NO);


I'm not sure if this helps you guys in locating the problem, but feel free to
ask more info/code if required...

Thx, for your effort.

-- 

Gert Steenssens (3586)
gsteenss@eps.agfa.be

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

"The drum is the beating of the hart,
 The bass is the rhythm of the mind."

 - Lee 'Scratch' Perry, The Upsetter -