Re: Bonobo activation: new library to old bonobo-activation-server

"Grahame Bowland" <[email protected]> Thu, 10 May 2007 11:04:27 +0800
Newsgroups gmane.comp.gnome.components
Message-ID <[email protected]>
On 09/05/07, Nickolay V. Shmyrev <[email protected]> wrote:
> Hello Grahame. This message is indeed present in sources:
[snip]
> But I suppose we should find why it's not listed in query results. Can you attach .server
> file for example? Probably it has some errors or incompatibilities. Probably there is sense to build
> b-a-s from sources and just debug it. It's not very large program really.
>
> Also can you run `bonobo-activation-run-query "1"`, it should list all the service, I suppose
> that bug with repoid's naming is possible too.

Hi Nickolay

Thanks for the suggestions! I've poked around with GDB a bit more, and
I think I've found the problem. I'm not sure how to resolve it though.

In bonobo_activation_activate, the system tries to run
Bonbo_ActivationContext_activateMatchingFull, and if that fails (which
it does with this old bonobo activation server) it tries to to run
Bobono_ActivationContext_activateMatching. This fails, but the method
does actually run within the bonobo activation server.

In the old bonobo activation server, (2.2.2) within
impl_Bonobo_ActivationContext_activateMatching it tries to get
"hostname" from the CORBA_Context. This fails, setting a CORBA
exception, and the method notices the exception and returns failure.

Note that all of this is happening before activating my component;
this is just my program trying to get a new bonobo activation server
to talk to (activating OAFID:Bonobo_Moniker_Oaf).

New libbonobo mentions in many places that setting "hostname" is
deprecated, but as far as I can see with the debugger it still does
set it. So either something odd is happening sending the CORBA_Context
over, or something is clearing the value before it is sent through.

Are there any tips for peering into CORBA_Context? I'd like to check
that hostname is *really* being set on the CORBA_Context. If desperate
I can just modify the old bonobo-activation server to not care about
hostname (it doesn't actually use it for anything) but it seems like
there is a genuine bug here : newer libbonobo can't talk to an old
activation server.