Re: Scream and Shout for JacORB



Hi Roland,

On Wed, 19 Dec 2001, Roland Juelich wrote:

> For interface ServerCB, ORBit is client, for interface Device, ORBit is server.
> The error occures, if register_event_callback() is invoked by the JacORB client.

	Okay, could you try apply the patch attached - it will print
out the ior of the ServerCB object reference when its received - and
send me on the output?

Cheers,
Mark.

Index: src/orb/orb-core/corba-any.c
===================================================================
RCS file: /cvs/gnome/ORBit2/src/orb/orb-core/corba-any.c,v
retrieving revision 1.36
diff -u -p -r1.36 corba-any.c
--- src/orb/orb-core/corba-any.c	2001/12/07 14:21:16	1.36
+++ src/orb/orb-core/corba-any.c	2001/12/19 14:15:39
@@ -368,6 +368,24 @@ ORBit_marshal_any (GIOPSendBuffer *buf,
 	ORBit_marshal_value (buf, &mval, val->_type);
 }

+static void
+dump_incoming_ior (CORBA_ORB          orb,
+		   const CORBA_Object object)
+{
+	CORBA_Environment env;
+	CORBA_string      ior;
+
+	CORBA_exception_init (&env);
+
+	ior = CORBA_ORB_object_to_string (orb, object, &env);
+	if (ior) {
+		fprintf (stderr, "received ior: %s\n", ior);
+		CORBA_free (ior);
+	}
+
+	CORBA_exception_free (&env);
+}
+
 /* FIXME: we need two versions of this - one for swap
  * endianness, and 1 for not */
 gboolean
@@ -533,6 +551,7 @@ ORBit_demarshal_value (CORBA_TypeCode tc
 		*val = ALIGN_ADDRESS (*val, ORBIT_ALIGNOF_CORBA_POINTER);
 		if (ORBit_demarshal_object ((CORBA_Object *)*val, buf, orb))
 			return TRUE;
+		dump_incoming_ior (orb, *(CORBA_Object *)*val);
 		*val = ((guchar *)*val) + sizeof (CORBA_Object);
 		break;
 	case CORBA_tk_TypeCode:




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]