Just spent a couple of hours debugging one of these and thought I would write it up in hopes that it makes things better.
My use case is that I’m calling my application from an API which means I’m dynamically starting it using the EclipseStarter class (with reflection since I can’t reference Eclipse stuff from the JAR file that my customers use).
Everything used to work in this particular set of tests (don’t they all say that?), and then when I run them I get the error below.
It turns out the problem was the plugin (bundle) that contained the application definition (in the plugin.xml) did not get resolved. It did not get resolved because it depended on a plugin that did not exist. However there is nothing in the logs that indicated there was a problem loading this plugin, it was just silently not loaded. I only discovered this debugging the bundle resolution code and wondering why it was not resolved.
So if you get this error and you can’t think of any other reason for it, make sure all of your dependent bundles are present, and ;resoution=optional could be your friend.
This bug has been filed about this: https://bugs.eclipse.org/bugs/show_bug.cgi?id=277058 (this happened in 3.4.2, so maybe it’s fixed in 3.5).
Caused by: java.lang.RuntimeException: Application “com.oaklandsw.transform.runtime.engine” could not be found in the registry. The applications available are: org.eclipse.equinox.app.error, org.eclipse.update.core.standaloneUpdate, org.eclipse.updat
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
… 76 more