[omniORB] POA assertion fails with multiple interfaces
Gary D. Duzan
gdd0@gte.com
Mon, 30 Oct 2000 11:26:42 -0500
This is a FAQ. You can't implement two different interfaces
using inheritance. Either implement a separate IDL interface which
inherits both interfaces, then implement the new interface, or use
a tie implementation to delegate calls from two objects to the same
servant.
Gary Duzan
Verizon Laboratories
In Message <20001030171241.A28784@sunhalle10.informatik.tu-muenchen.de> ,
Asa MacWilliams <macwilli@informatik.tu-muenchen.de> wrote:
=>Hi,
=>
=>I'm using OmniORB 3.0.2 (on SuSE Linux 6.4 for PowerPC), and I have servants
=>that implement several interfaces. When I use the _this() function on the
=>second interface, an assertion fails:
=>
=>omniORB: Assertion failed. This indicates a bug in omniORB.
=> file: ../portableserver.cc
=> line: 242
=> info: ref
=>
=>The code is more or less like:
=>
=>class MyImpl:
=> public POA_Interface1,
=> public POA_Interface2
=>{
=> ...
=>};
=>
=>MyImpl* myServant=new MyImpl;
=>Interface1_ptr=((POA_Interface1*)myServant)->_this();
=>Interface2_ptr=((POA_Interface2*)myServant)->_this();
=>
=>The second call of "_this()" causes the assertion.
=>
=>Am I doing something wrong here (I hope) or is this really a problem in
=>OmniORB?
=>
=>Thanks,
=>Asa
=>
=>--
=>
=>|\ /\ /| Asa MacWilliams
=>| /--\ | asa.macwilliams@in.tum.de
=>|/ \/ \| http://www.in.tum.de/~macwilli/
=>