David Lloyd wrote:
It looks like ORB.destroy() might block until the thread is shut down? If so, you could use another thread - or a thread pool - to shut it down and hit the callback when it completes?
That's true. I will make stop() asynchronous and create a thread that calls back the context once the ORB shutdown process has completed. I will leave start() synchrounous as the ORB thread will block for the lifetime of the ORB, so I won't be able to call context.complete() until after the ORB process has been terminated.
David Lloyd wrote:
OK yeah like Jason said I didn't mean javax.api, which is among the few modules which correctly depends on "system". I think at the moment it's safe to say that any module in the current upstream tree with a dependency on "system" has it for a good reason (and filters it down as appropriate). The important takeaway is, remove the CORBA stuff from the list of filters in javax.api before introducing your own API.
I did that (may not have done it properly though). I've removed all org.omg entries from the javax.api list of filters and introduced a new org.omg.api that depends on jacorb and exports only the org.omg API. But jacorb depends on javax.rmi.CORBA, so it has a dependency on javax.api and apparently the CORBA.Stub class sees the JDK org.omg classes and this ends up producing the VerifyError I've posted before.