After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 93727 - CORBA.BAD_OPERATION when using IMethods from CORBA_Object__iinterface?
CORBA.BAD_OPERATION when using IMethods from CORBA_Object__iinterface?
Status: RESOLVED WONTFIX
Product: ORBit2
Classification: Deprecated
Component: general
2.4.X
Other All
: Normal normal
: ---
Assigned To: ORBit maintainers
ORBit maintainers
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2002-09-20 04:22 UTC by James Henstridge
Modified: 2019-02-23 02:42 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description James Henstridge 2002-09-20 04:22:03 UTC
I noticed that "CORBA_Object__iinterface" is exposed in the headers, and
used it to set up the standard CORBA.Object methods in my Python binding. 
However, when I try to invoke some of them (with the
ORBit_small_invoke_stub() function), I get a CORBA.BAD_OPERATION exception.

I don't think there is any problems with how I marshalled the arguments, so
is this a known issue?  Or should I have just ignored CORBA_Object__iinterface?
Comment 1 Mark McLoughlin 2002-09-20 04:27:51 UTC
Most of these methods aren't supposed to be able to be invoked
remotely. The ones that are are only supposed to be invoked by the ORB
AFAIK. So just ignore it, I'm not sure why we've made it public :-)
Comment 2 James Henstridge 2002-09-20 05:00:21 UTC
Fair enough.  It looked like a good short cut for writing the wrapper
for CORBA.Object (handle the CORBA.Object methods the same as for
other interfaces I wrap).
Comment 3 Michael Meeks 2002-09-20 08:10:47 UTC
Hi James- you're exactly right.

And this is the direction I'd like to take really; to ensure that by
hook or by crook, we use the IInterface method to make all the
'pseudo-objects' into real objects on which we can use the standard
invoke stuff; precisely to shrink the binding author's pain.

Quite how we do that is an interesting question really; how we do this
currently is poa.c (ORBit_POAObject_handle_request) uses:

	if (!skel && !small_skel)
		small_skel = get_small_skel_CORBA_Object (
			pobj->servant, opname,
			(gpointer *)&m_data, &imp);

To do a fallback for (only) remote invocations to the CORBA_Object
special cases ( cf. ORBit2/src/orb/orb-core/corba-object.c ).

I'd very much like to expand corba-object.c to handle all the methods:
ref / unref etc. so we can use them in scripting bindings [ that bit
should be easy ].

Actually, having chased that through I believe that's all you need to
do; and it'd be great to have that.

Of course - in future it'd be nice to have a similar scheme for other
local objects such as DynAny / ORB etc.

How does that sound ?
Comment 4 Michael Meeks 2002-09-20 10:25:35 UTC
Of course; 1 last thing - we want to segregate the sinful remote/local
operations on CORBA_Object, so someone remote can't do stupid 'unref's
etc. [ which would cause no end of grief ].
Comment 5 André Klapper 2019-02-23 02:42:31 UTC
ORBit2 is not under active development anymore. 
Its codebase has been archived:
https://gitlab.gnome.org/Archive/orbit2/commits/master

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect
reality. Please feel free to reopen this ticket (or rather reactivate the project
to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the
responsibility for active development again.