Community
Participate
Working Groups
I20090730-2000 This just happend when I tried to checkout a CVS project. org.eclipse.core.runtime.AssertionFailedException: null argument:Invalid access from non-UI thread. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.eclipse.jface.dialogs.IconAndMessageDialog.getSWTImage(IconAndMessageDialog.java:271) at org.eclipse.jface.dialogs.IconAndMessageDialog.getQuestionImage(IconAndMessageDialog.java:260) at org.eclipse.jface.dialogs.MessageDialog.<init>(MessageDialog.java:184) at org.eclipse.team.internal.ui.dialogs.MultipleYesNoPrompter.confirmOverwrite(MultipleYesNoPrompter.java:108) at org.eclipse.team.internal.ui.dialogs.MultipleYesNoPrompter.shouldInclude(MultipleYesNoPrompter.java:83) at org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.promptToOverwrite(CVSOperation.java:233) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.promptToOverwrite(CheckoutProjectOperation.java:439) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.scrubProjects(CheckoutProjectOperation.java:366) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.performCheckout(CheckoutProjectOperation.java:226) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation$2.run(CheckoutProjectOperation.java:171) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run(EclipseSynchronizer.java:1481) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.checkout(CheckoutProjectOperation.java:169) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation.checkout(CheckoutMultipleProjectsOperation.java:58) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation.checkout(CheckoutOperation.java:47) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation.execute(CheckoutOperation.java:32) at org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.run(CVSOperation.java:81) at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:144) at org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:72) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Looks like another victim of the fix in IconAndMessageDialog :-) Looking for the bug number...
I believe it works now with the fix for bug 107082.
Krzysztof, please look at it thanks.
I saw it as well some time ago, but when updated to a newer build, I haven't seen it since.
Created attachment 143622 [details] Patch_1.0 I put the whole MultipleYesNoPrompter#confirmOverwrite method call from MultipleYesNoPrompter#shouldInclude into UI thread and removed running UI thread and final variables from the inside of MultipleYesNoPrompter#confirmOverwrite as no longer needed. Invalid access from non-UI thread should not occur any more.
Created attachment 143624 [details] Patch_2.0 I added also check if shellProvider.getShell() is not null inside MultipleYesNoPrompter#shouldInclude to avoid another NPE.
This particular problem was fixed along with bug 107082. If you want to improve the current code, please raise a separate bug and continue work there.