[tao-bugs] Cannot demarshal valuetypes that indirectly support abstract interfaces
tmartins at tecgraf.puc-rio.br
Wed Sep 9 10:33:19 CDT 2015
TAO VERSION: 2.3.0
ACE VERSION: 6.3.0
HOST MACHINE and OPERATING SYSTEM:
Linux 4.1.0-2-amd64 #1 SMP Debian 4.1.6-1 (2015-08-23) x86_64
THE $ACE_ROOT/ace/config.h FILE:
THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
DOES THE PROBLEM AFFECT:
A program trying to demarshal a valuetype derived from another
one that supports an abstract interface throws CORBA::MARSHAL.
At some point during the demarshalling, the program calls the
`CORBA::ValueFactoryBase::create_for_unmarshal_abstract()`. The source
code has a comment telling this function should never be called. It
returns a null pointer. From there on, a series of failures occur until
`TAO::Synch_Twoway_Invocation::check_reply_status` throws a
I provided a test scenario at
<https://github.com/tmcb/tao_valuetype_demarshalling_bug>. It consists
- A valuetype that indirectly supports an abstract interface
(through another valuetype).
- An interface with operations that produce instances of that
- An implementation of that producer interface. The operations'
implementations produce instances of the derived valuetype.
- A client that consumes those operations.
The client works if support to the abstract interface is added
to the derived valuetype.
More information about the tao-bugs