Je développe mon propre plugin Eclipse et suis tombé sur un comportement très étrange. Dans certains cas très spécifiques, Eclipse ne se ferme pas lorsque je ferme le plan de travail. Il reste juste suspendu jusqu'à ce que je tue le processus. Cela se produit lors de l'exécution de PDE et lors de l'exécution en tant qu'installation régulière.Eclipse ne quittera pas avec mon plugin
Il est vraiment difficile de fournir plus de détails et je sais que c'est une question très générique. Pourtant, je me demandais si quelqu'un avait rencontré un tel comportement et pouvait partager la solution.
Merci. Zviki
PS. J'attache des traces de pile de tous les threads en cours d'exécution après la fermeture du workbench. Peut-être que quelque chose va sortir. Cette trace a été obtenue en exécutant l'EDI en mode débogage, en le suspendant après qu'il ait été gelé et en copiant tout l'arbre des fils.
Test1 [Eclipse Application]
org.eclipse.equinox.launcher.Main at localhost:54840 (Suspended)
Daemon System Thread [Finalizer] (Suspended)
Object.wait(long) line: not available [native method]
ReferenceQueue<T>.remove(long) line: 120
ReferenceQueue<T>.remove() line: 136
Finalizer$FinalizerThread.run() line: 159
Daemon System Thread [Reference Handler] (Suspended)
Object.wait(long) line: not available [native method]
Reference$Lock(Object).wait() line: 474
Reference$ReferenceHandler.run() line: 116
Thread [main] (Suspended)
Daemon System Thread [Signal Dispatcher] (Suspended)
Daemon Thread [Thread-0] (Suspended)
OS.CFRunLoopRunInMode(int, double, boolean) line: not available [native method]
Display.sleep() line: 3902
IDEWorkbenchAdvisor(WorkbenchAdvisor).eventLoopIdle(Display) line: 364
Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2383
Workbench.runUI() line: 2346
Workbench.access$4(Workbench) line: 2198
Workbench$5.run() line: 493
Realm.runWithDefault(Realm, Runnable) line: 288
Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 488
PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149
IDEApplication.start(IApplicationContext) line: 113
EclipseAppHandle.run(Object) line: 193
EclipseAppLauncher.runApplication(Object) line: 110
EclipseAppLauncher.start(Object) line: 79
EclipseStarter.run(Object) line: 386
EclipseStarter.run(String[], Runnable) line: 179
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: 549
Main.basicRun(String[]) line: 504
Main.run(String[]) line: 1236
Main.main(String[]) line: 1212
Daemon Thread [State Data Manager] (Suspended)
Thread.sleep(long) line: not available [native method]
StateManager.run() line: 297
Thread.run() line: 613
Daemon Thread [Framework Event Dispatcher] (Suspended)
Object.wait(long) line: not available [native method]
EventManager$EventThread(Object).wait() line: 474
EventManager$EventThread.getNextEvent() line: 377
EventManager$EventThread.run() line: 317
Daemon Thread [Start Level Event Dispatcher] (Suspended)
Object.wait(long) line: not available [native method]
EventManager$EventThread(Object).wait() line: 474
EventManager$EventThread.getNextEvent() line: 377
EventManager$EventThread.run() line: 317
Thread [Worker-0] (Suspended)
Object.wait(long) line: not available [native method]
WorkerPool.sleep(long) line: 185
WorkerPool.startJob(Worker) line: 217
Worker.run() line: 51
Daemon Thread [Java indexing] (Suspended)
Object.wait(long) line: not available [native method]
IndexManager(Object).wait() line: 474
IndexManager(JobManager).run() line: 371
Thread.run() line: 613
Thread [Worker-1] (Suspended)
Object.wait(long) line: not available [native method]
WorkerPool.sleep(long) line: 185
WorkerPool.startJob(Worker) line: 217
Worker.run() line: 51
Thread [Worker-2] (Suspended)
Object.wait(long) line: not available [native method]
WorkerPool.sleep(long) line: 185
WorkerPool.startJob(Worker) line: 217
Worker.run() line: 51
comment avez-vous découvert? L'exception a-t-elle été enregistrée quelque part? – chris