First time trying multiple inheritance, getting C++ exception at run time.

in Help Center
I'm using Ice 3.3.1 on Solaris 9. This is my Ice source:
This worked fine until I added the second interface.
Not at run time I get the following exception. It appears to be trying to construct a Proxy for NavDataObserver but crashes. What am I doing wrong?
The C++ source code is:
interface PlayBackObserver extends ReportObserver, NavDataObserver { void playBackFinsihed(bool wasCancled); };
This worked fine until I added the second interface.
Not at run time I get the following exception. It appears to be trying to construct a Proxy for NavDataObserver but crashes. What am I doing wrong?
0002a6e4 IceProxy::ipa::NavDataObserver::NavDataObserver() (21e088, 15a200, 0, 15a280, 21e030, fffffff4) + 2c 0002a3c8 IceProxy::ipa::PlayBackObserver::PlayBackObserver() (21e038, 2063a0, 15a280, ffffffff, 21cbd8, 15a000) + 54 0002a2c8 IceInternal::ProxyHandle<IceProxy::ipa::PlayBackObserver> IceInternal::checkedCastImpl<IceInternal::ProxyHandle<IceProxy::ipa::PlayBackObserver> >(IceInternal::ProxyHandle<IceProxy::Ice::Object> const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const*) (ffbfd3e8, 0, ffbfd248, 21c040, 218d38, c) + 17c 0002903c IceInternal::ProxyHandle<IceProxy::ipa::PlayBackObserver> IceInternal::checkedCastHelper<IceProxy::ipa::PlayBackObserver, IceProxy::Ice::Object>(IceInternal::ProxyHandle<IceProxy::Ice::Object> const&, void*, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const*) (ffbfd3e8, 0, 0, ffbfd2ec, ffbfd310, ffbfd310) + 20 00027cc4 IceInternal::ProxyHandle<IceProxy::ipa::PlayBackObserver> IceInternal::ProxyHandle<IceProxy::ipa::PlayBackObserver>::checkedCast<IceProxy::Ice::Object>(IceInternal::ProxyHandle<IceProxy::Ice::Object> const&) (ffbfd3e8, ffbfd3f8, a, 21b1a8, 21b1a8, ffbfd3e8) + 24 0001e7c8 ipa::EcmsServerTest::TestSetup() (2173c0, 741f4, fe9c29bc, fe9bc000, 2173c0, 217ae8) + 7b8 00032e38 CppUnit::TestCaller<ipa::EcmsServerTest>::runTest() (217ae8, ff000000, fe9c29bc, fe9bc000, 0, 35) + 80 00141c74 CppUnit::TestCaseMethodFunctor::operator()() const (ffbfd880, 0, fe9c29c8, fe9bc000, 3, 1b3860) + 34 001527a8 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (217320, ffbfd880, ffbfd7f0, ffbfd768, 219888, 152794) + 14 00153bf4 CppUnit::ProtectorChain::ProtectFunctor::operator()() const (208640, 0, 219478, 219278, 21968c, 153be0) + 14 001538d0 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (21ac88, ffbfd880, ffbfd7f0, ffbfd738, ffbfd6e4, 1b42a8) + 1e0 ...
The C++ source code is:
class PlayBackObserverImpl : virtual public ipa::PlayBackObserver { virtual ~PlayBackObserverImpl(); ... Methods for both interfaces ... };
0
Comments
:eek: After I posted this I noticed that I put this in the wrong forum. I intended to put it in "Help Center" not "Bug Reports" but I can't find a way to move it or delete it. Any way sorry for the confusion.
-John
I've moved this thread to the Help Center.
You didn't specify your compiler, so I took a guess and built Ice with GCC on Solaris 10 and tried to reproduce your problem by tweaking the Slice definitions of the 'hello' demo, but it worked correctly. Do you have a small, self-contained example that reproduces the problem?
Regards,
Mark
I built the hello demo as is first to verify that it worked then modified it create a example and does repo the problem but the stack trace is different.
Here are my mods to hello demo.
The stack trace I get is:
Thanks
John
-John