I'm wondering about this question : Is there is a default way in which
uncaught throwables, i.e. instances of RuntimeException or Error, are
handled within OSGi ?

 

So fa i found partly answers of this question:

- In paragraph 4.3.6 of the core spec, i found this statement: If the
start(BundleContext) method throws an exception, the Framework must mark
the bundle as stopped and send out STOPPING and STOPPED events but it
must not call the Bundle Activator stop(BundleContext) method.

- The method stop(BundleContext) may also throw an execption, but i
found no hint in the spec what should happen in this case. However, the
javadoc of the core API states the following: if this method throws an
exception, the bundle is still marked as stopped, and the Framework will
remove the bundle's listeners, unregister all services registered by the
bundle, and release all services used by the bundle.

 

This leaves some cases unspecified:

1.) what should happen, if an Error is thrown from start(BundleContext)
or stop(BundleContext). 

2.) what should happen, if some 'worker thread' started internally
within a bundle throws an uncaught RuntimeException or an Error from
it's run() method ?

 

To me, it looks in many cases reasonable to shut down the complete VM if
such uncaught exceptions occur, because it might be in an unforeseen,
inconsistent state. However (at least with ApacheFelix) this does not
happen by default. Of course i can code this explicitely whenever a
thread is started in my code, but this does not help me with third party
libraries (like Jacorb or QUARTZ), that create threads internally. For
this reason, i would like to install a general 'uncaughtException'
handler for a specific bundle or the complete OSGi framework. I have
been searching the spec and the mailing lists on how to achieve this
behaviour, but found nothing so far.

 

Have i overlooked something, or have these cases intentionally been left
out from the spec ?

 

thanks in advance for any hints, Martin

 

 



 
************************************************
The information contained in, or attached to, this e-mail, may contain 
confidential information and is intended solely for the use of the individual 
or entity to whom they are addressed and may be subject to legal privilege.  If 
you have received this e-mail in error you should notify the sender immediately 
by reply e-mail, delete the message from your system and notify your system 
manager.  Please do not copy it for any purpose, or disclose its contents to 
any other person.  The views or opinions presented in this e-mail are solely 
those of the author and do not necessarily represent those of the company.  The 
recipient should check this e-mail and any attachments for the presence of 
viruses.  The company accepts no liability for any damage caused, directly or 
indirectly, by any virus transmitted in this email.
************************************************
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to