| Summary: | Riena SWT Example application does not stop properly | ||
|---|---|---|---|
| Product: | [RT] Riena | Reporter: | Stefan Liebig <Stefan.Liebig> |
| Component: | UI | Assignee: | Nobody - feel free to take it <nobody> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | nobody |
| Version: | 1.2.0 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
|
Description
Stefan Liebig
Suspending the main-Thread to some other time shows: Unsafe.park(boolean, long) line: not available [native method] LockSupport.park() line: 118 AbstractQueuedSynchronizer.parkAndCheckInterrupt() line: 681 CountDownLatch$Sync(AbstractQueuedSynchronizer).doAcquireSharedInterruptibly(int) line: 837 CountDownLatch$Sync(AbstractQueuedSynchronizer).acquireSharedInterruptibly(int) line: 1144 SwtUISynchronizer$FutureSyncLatch(CountDownLatch).await() line: 199 SwtUISynchronizer$FutureSyncLatch.await() line: 158 SwtUISynchronizer.waitForDisplayInitialisation(Runnable) line: 137 SwtUISynchronizer.execute(SwtUISynchronizer$Executor, Runnable) line: 68 SwtUISynchronizer.syncExec(Runnable) line: 43 UICallbackDispatcher.synchronize(Runnable) line: 193 UICallbackDispatcher.jobDone() line: 137 UICallbackDispatcher.access$1(UICallbackDispatcher) line: 136 UICallbackDispatcher$1.done(IJobChangeEvent) line: 92 JobListeners$3.notify(IJobChangeListener, IJobChangeEvent) line: 39 JobListeners.doNotify(JobListeners$IListenerDoit, IJobChangeEvent) line: 112 JobListeners.done(Job, IStatus, boolean) line: 152 JobManager.cancel(InternalJob) line: 324 SimpleSender$Sender(InternalJob).cancel() line: 187 SimpleSender$Sender(Job).cancel() line: 195 SimpleSender.stop() line: 137 Aggregator.stopSender() line: 163 Aggregator.update(IClientInfoProviderExtension) line: 110 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 ExtensionInjector.update(Object[]) line: 346 ExtensionInjector.stop() line: 205 AggregatorWiring.unwire(Object, BundleContext) line: 43 WirePuller.stop() line: 83 WirePuller$BundleStoppingListener.bundleChanged(BundleEvent) line: 199 BundleContextImpl.dispatchEvent(Object, Object, int, Object) line: 919 EventManager.dispatchEvent(Set, EventDispatcher, int, Object) line: 227 ListenerQueue.dispatchEventSynchronous(int, Object) line: 149 Framework.publishBundleEventPrivileged(BundleEvent) line: 1355 Framework.publishBundleEvent(int, Bundle) line: 1306 BundleHost.stopWorker(int) line: 497 BundleHost(AbstractBundle).suspend(boolean) line: 550 Framework.suspendBundle(AbstractBundle, boolean) line: 1103 StartLevelManager.decFWSL(int, AbstractBundle[]) line: 597 StartLevelManager.doSetStartLevel(int) line: 257 StartLevelManager.shutdown() line: 215 InternalSystemBundle.suspend() line: 266 Framework.shutdown(int) line: 690 Framework.close() line: 588 EclipseStarter.shutdown() line: 415 EclipseStarter.run(String[], Runnable) line: 198 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 Main.invokeFramework(String[], URL[]) line: 619 Main.basicRun(String[]) line: 574 Main.run(String[]) line: 1407 Main.main(String[]) line: 1383 There is a new mechanism in SWTUISynchronizer to wait for the display. If the workbench has allready been shutdown the described behaviour can be reproduced. Fixed. Now the state "shutdown" of the workbench is respected. |