[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [equinox-dev] Logging, exceptions, and the UserAdmin service
- From: BJ Hargrave <hargrave@xxxxxxxxxx>
- Date: Mon, 6 Feb 2006 15:12:11 -0500
- Delivered-to: firstname.lastname@example.org
equinox-dev-bounces@xxxxxxxxxxx wrote on 2006-02-06 02:27:07 PM:
> I've done some more looking at this. It looks like if you start or
> stop a bundle from the console then the exception stack trace goes
> to the console,
This is because the console code calls the bundle life cycle methods and
thus catches the exception. So it prints it out.
> but if the framework starts or stops the bundle,
> exceptions go to the log.
The framework publishes the exceptions as FrameworkEvent.ERRORs which are
then captured by the log (who registered a FrameworkListener). So the
framework does not log the exceptions, per se.
> If this is by design (which I assume it
> is), then I would suggest that exceptions always be sent to the log
> even if they also go to the console. Does this sound reasonable?
> If so, I'll log a enhancement request.
I suppose, but really the console is generally manned by someone
intelligent (or at least a human :-) who has typed in some command and
then wants a success or failure indication.
Again the framework does not send the exception to the log. The bundle
lifecycle methods throw an exception and the receiver has to decide what
to do. The console implementation could decide to dump all exceptions it
encountered into the log as well as display them.
But how truly useful is this?
> Also, is there an easy way to get the framework to stop a bundle to
> verify that exceptions in the BundleActivator.stop() go to the log?
> I've tried programmatically stopping a bundle from another bundle,
> but then you end having to handle the exception yourself instead of
> the framework handling it.
Try using StartLevel. By having some bundle at start level 100 for
example, when you change the start level to 99, the framework must stop
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
Office: +1 407 849 9117 Mobile: +1 386 848 3788