Bug 410541 - Invalid thread access on shutdown
Summary: Invalid thread access on shutdown
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: Macintosh Mac OS X
: P2 minor (vote)
Target Milestone: 2.0.1   Edit
Assignee: Miles Parker CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-11 17:19 EDT by Miles Parker CLA
Modified: 2013-06-21 17:02 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Miles Parker CLA 2013-06-11 17:19:11 EDT
If we're in the midst of synchonrizing reviews when shutting down we get an exception because we don't have a UI thread anymore. This souldn't be harmful, but we should handle more gracefully.

org.eclipse.swt.SWTException: Invalid thread access
	at org.eclipse.swt.SWT.error(SWT.java:4361)
	at org.eclipse.swt.SWT.error(SWT.java:4276)
	at org.eclipse.swt.SWT.error(SWT.java:4247)
	at org.eclipse.swt.widgets.Display.error(Display.java:1068)
	at org.eclipse.swt.widgets.Display.createDisplay(Display.java:825)
	at org.eclipse.swt.widgets.Display.create(Display.java:808)
	at org.eclipse.swt.graphics.Device.<init>(Device.java:130)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:699)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:690)
	at org.eclipse.swt.widgets.Display.getDefault(Display.java:1386)
	at org.eclipse.mylyn.reviews.ui.spi.remote.RemoteUiService.modelExec(RemoteUiService.java:28)
	at org.eclipse.mylyn.reviews.core.spi.remote.AbstractRemoteFactoryProvider.modelExec(AbstractRemoteFactoryProvider.java:28)
	at org.eclipse.mylyn.reviews.spi.edit.remote.AbstractRemoteEditFactoryProvider.modelExec(AbstractRemoteEditFactoryProvider.java:315)
	at org.eclipse.mylyn.internal.gerrit.core.remote.GerritRemoteFactoryProvider.pullUser(GerritRemoteFactoryProvider.java:72)
	at org.eclipse.mylyn.internal.gerrit.core.remote.GerritReviewRemoteFactory.pull(GerritReviewRemoteFactory.java:94)
	at org.eclipse.mylyn.internal.gerrit.core.remote.GerritReviewRemoteFactory.pull(GerritReviewRemoteFactory.java:1)
	at org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfConsumer.pull(RemoteEmfConsumer.java:164)
	at org.eclipse.mylyn.reviews.core.spi.remote.JobRemoteService.retrieve(JobRemoteService.java:93)
	at org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfConsumer.retrieve(RemoteEmfConsumer.java:289)
	at org.eclipse.mylyn.internal.gerrit.core.GerritTaskDataHandler.updateModelData(GerritTaskDataHandler.java:153)
	at org.eclipse.mylyn.internal.gerrit.core.GerritTaskDataHandler.getTaskData(GerritTaskDataHandler.java:114)
	at org.eclipse.mylyn.internal.gerrit.core.GerritConnector.getTaskData(GerritConnector.java:156)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.synchronizeTask(SynchronizeTasksJob.java:245)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.runInternal(SynchronizeTasksJob.java:218)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.run(SynchronizeTasksJob.java:153)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.run(SynchronizeTasksJob.java:135)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeQueriesJob.run(SynchronizeQueriesJob.java:225)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Miles Parker CLA 2013-06-11 17:48:28 EDT
I'm not actually sure how to handle this, because we can't check in the GerritTaskDataHandler whether we are in UI thread, and by the time we're in modelExec, it's too late. One possibility is to check if we're in Eclipse shut down mode in modelExec and fail the remote execution cleanly when that happens.
Comment 2 Miles Parker CLA 2013-06-19 18:58:40 EDT
https://git.eclipse.org/r/13939  Please see review for request for comments.
Comment 3 Miles Parker CLA 2013-06-21 17:02:09 EDT
Merged https://git.eclipse.org/r/#/c/13939/4