2002-06-20 Bill Haneman <bill.haneman@sun.com>
+ * registryd/registry.c: [fix for bug 86048]
+ (notify_listeners_cb):
+ Clear CORBA system exceptions which occur when notifying
+ listeners, before returning to the source of the original event,
+ since the event source doesn't care if the relayed notify failed.
+ In other words, don't complain to the atk-bridge if the registry
+ could not notify all its listeners, that's no fault of the
+ application and thus should not appear to be an error from the
+ application's perspective.
+
* cspi/spi_main.c: [fix for bug 85980]
(cspi_object_ref):
Replaced use of bonobo_object_dup_ref with call to the wrapper
#endif
Accessibility_Registry_notifyEvent (spi_atk_bridge_get_registry (), &e, &ev);
+#ifdef SPI_BRIDGE_DEBUG
+ if (ev._major != CORBA_NO_EXCEPTION)
+ g_warning ("error emitting event %s, (%d) %s",
+ e.type,
+ ev._major,
+ CORBA_exception_id(&ev));
+#endif
if (BONOBO_EX (&ev)) registry_died = TRUE;
Accessibility_Accessible_unref (e.source, &ev);
g_warning ("Accessibility app error: exception during "
"event notification: %s\n",
CORBA_exception_id (ctx->ev));
+ if (ctx->ev->_major == CORBA_SYSTEM_EXCEPTION)
+ CORBA_exception_init (ctx->ev);
+ /* clear system exception on notify, it means listener is dead but
+ * that's no concern of the event source :-) */
}
}
else /* dup re-entered */