| Summary: | Starting application that requires main thread when it is not available throws meaningless exception | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Michal Tkacz <Michal.Tkacz> | ||||
| Component: | Compendium | Assignee: | Thomas Watson <tjwatson> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | batxut, jeffmcaffer, tjwatson | ||||
| Version: | unspecified | Flags: | jeffmcaffer:
review+
|
||||
| Target Milestone: | 3.6 RC1 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
I consider this a bug, not an enhancement. I will fix in next release since we are ramping down 3.6. On second thought. I will just fix this now to avoid more possible confusion. Created attachment 167961 [details]
patch
Jeff, please review. Patch released for RC1. |
Build Identifier: In certain circumstances, e.g. when OSGi is run on top of servlet container with servletbridge, the main thread is not available. In that case starting an application that requires one (as defined using org.eclipse.core.runtime.applications extension point) throws following exception: org.osgi.service.application.ApplicationException at org.eclipse.equinox.internal.app.EclipseAppContainer.launch(EclipseAppContainer.java:328) at org.eclipse.equinox.internal.app.EclipseAppDescriptor.launchSpecific(EclipseAppDescriptor.java:93) at org.osgi.service.application.ApplicationDescriptor.launch(ApplicationDescriptor.java:315) at org.eclipse.equinox.internal.app.AppCommands._startApp(AppCommands.java:183) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:155) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:157) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:142) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:106) at java.lang.Thread.run(Thread.java:636) The idea is to add a message that would make clear the reason of the error. Reproducible: Always