[omniORB] Antwort: Re: MARSHAL_InvalidValueTag

Duncan Grisby duncan at grisby.org
Wed Mar 25 14:49:25 GMT 2015


On Thu, 2015-03-19 at 14:21 +0100, alexander.silier at eisenmann.com wrote:

[... skip nightmare Java RMI generated IDL...]
[...]
> Things I changed in the IDL files:
> 
> - Put the exception within the same idl file with the valuetype
> - Removed "custom" keyword from the Throwable valuetype

That is quite possibly the cause of the problem. "custom" means that the
marshalled form of the data is not declared in the IDL, and the
application code must provide marshalling code to handle it. By removing
"custom", you've told omniORB that the contents of Throwable are
marshalled using normal rules, and so it has got out of sync with
however the data really is sent.

This raises two problems:  1. the IDL doesn't tell you how the data is
marshalled, so you would have to know how the Java ORB marshals it. 2.
omniORB doesn't support custom valuetypes anyway.

Unless actually the "custom" is just plain unnecessary, and the
marshalled form of the Thowable valuetype is actually marshalled
according to the standard rules. In that case, the problem is presumably
elsewhere.


The auto-generated IDL is wildly too complex to try to unpick by hand.
To try to diagnose it more, the easiest thing is probably to run in a
debugger (with a debug build of omniORB) and set a breakpoint on
valueType.cc line 341. Get a stack trace there, and output the value of
the tag. That will give some context about where it goes wrong.

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list