multithreading - org.eclipse.swt.SWTException: Invalid thread access from HandledContributionItem -


i know there lots of such questions here , of them answered. answers won't solve case.

i'm working on eclipse plugin project, have customized project type can either run or debugged. have implemented run , debug function , expected displayed on screen, except console shows exception:

!entry org.eclipse.e4.ui.workbench 4 0 2015-04-28 23:31:17.410 !message internal error during tool item enablement updating,       logged once per tool item. !stack 0 org.eclipse.swt.swtexception: invalid thread access @ org.eclipse.swt.swt.error(swt.java:4441) @ org.eclipse.swt.swt.error(swt.java:4356) @ org.eclipse.swt.swt.error(swt.java:4327) @ org.eclipse.swt.widgets.widget.error(widget.java:783) @ org.eclipse.swt.widgets.widget.checkwidget(widget.java:574) @ org.eclipse.swt.widgets.widget.getdata(widget.java:874) @ org.eclipse.e4.ui.workbench.renderers.swt.handledcontributionitem.updateicons(handledcontributionitem.java:546) @ org.eclipse.e4.ui.workbench.renderers.swt.handledcontributionitem.update(handledcontributionitem.java:440) @ org.eclipse.e4.ui.workbench.renderers.swt.handledcontributionitem.update(handledcontributionitem.java:430) @ org.eclipse.e4.ui.workbench.renderers.swt.handledcontributionitem$3.run(handledcontributionitem.java:168) @ org.eclipse.core.runtime.saferunner.run(saferunner.java:42) @ org.eclipse.e4.ui.workbench.renderers.swt.handledcontributionitem.updateitemenablement(handledcontributionitem.java:196) @ org.eclipse.e4.ui.workbench.renderers.swt.toolitemupdater.updatecontributionitems(toolitemupdater.java:39) @ org.eclipse.e4.ui.workbench.renderers.swt.toolbarmanagerrenderer$8.changed(toolbarmanagerrenderer.java:367) @ org.eclipse.e4.core.internal.contexts.trackablecomputationext.update(trackablecomputationext.java:110) @ org.eclipse.e4.core.internal.contexts.eclipsecontext.processscheduled(eclipsecontext.java:338) @ org.eclipse.e4.core.internal.contexts.eclipsecontext.set(eclipsecontext.java:352) @ org.eclipse.ui.internal.services.evaluationservice.contextevaluate(evaluationservice.java:139) @ org.eclipse.ui.internal.services.evaluationservice.addsourceprovider(evaluationservice.java:180) @ org.eclipse.debug.internal.ui.contexts.debugcontextsourceprovider.<init>(debugcontextsourceprovider.java:51) @ org.eclipse.debug.internal.ui.contexts.debugwindowcontextservice.<init>(debugwindowcontextservice.java:62) @ org.eclipse.debug.internal.ui.contexts.debugcontextmanager.createservice(debugcontextmanager.java:163) @ org.eclipse.debug.internal.ui.contexts.debugcontextmanager.getcontextservice(debugcontextmanager.java:221) @ org.eclipse.debug.internal.ui.views.viewcontextservice.<init>(viewcontextservice.java:620) @ org.eclipse.debug.internal.ui.views.viewcontextmanager.windowopened(viewcontextmanager.java:93) @ org.eclipse.debug.internal.ui.views.viewcontextmanager.<init>(viewcontextmanager.java:55) @ org.eclipse.debug.internal.ui.views.viewcontextmanager.getdefault(viewcontextmanager.java:44) @ org.eclipse.debug.internal.ui.contexts.debugcontextmanager.getdefault(debugcontextmanager.java:150) @ org.eclipse.debug.ui.debuguitools.getdebugcontextmanager(debuguitools.java:1068) @ org.eclipse.debug.internal.ui.sourcelookup.sourcelookupservice.<init>(sourcelookupservice.java:40) @ org.eclipse.debug.internal.ui.sourcelookup.sourcelookupmanager.windowopened(sourcelookupmanager.java:91) @ org.eclipse.debug.internal.ui.sourcelookup.sourcelookupmanager.<init>(sourcelookupmanager.java:41) @ org.eclipse.debug.internal.ui.sourcelookup.sourcelookupmanager.getdefault(sourcelookupmanager.java:53) @ org.eclipse.debug.internal.ui.debuguiplugin.initializelaunchlisteners(debuguiplugin.java:935) @ org.eclipse.debug.internal.ui.debuguiplugin.launchadded(debuguiplugin.java:920) @ org.eclipse.debug.internal.core.launchmanager$launchnotifier.run(launchmanager.java:451) @ org.eclipse.core.runtime.saferunner.run(saferunner.java:42) @ org.eclipse.debug.internal.core.launchmanager$launchnotifier.notify(launchmanager.java:438) @ org.eclipse.debug.internal.core.launchmanager.fireupdate(launchmanager.java:1044) @ org.eclipse.debug.internal.core.launchmanager.addlaunch(launchmanager.java:708) @ org.eclipse.debug.internal.core.launchconfiguration.launch(launchconfiguration.java:834) @ org.eclipse.debug.internal.core.launchconfiguration.launch(launchconfiguration.java:739) @ org.eclipse.debug.internal.ui.debuguiplugin.buildandlaunch(debuguiplugin.java:1039) @ org.eclipse.debug.internal.ui.debuguiplugin$8.run(debuguiplugin.java:1256) @ org.eclipse.core.internal.jobs.worker.run(worker.java:54) 

my codes following: in launchshortcut.java have

display.getdefault().syncexec(new runnable() {     @override     public void run() {       shell activeshell = platformui.getworkbench().getactiveworkbenchwindow().getshell();       if(debuguitools.openlaunchconfigurationdialog(activeshell, config, group, null) == window.cancel){         return;       }     }   }); 

this trigger launchconfigurationwindow, , not show exception in console. when hit "run" in window, process stops @ first line in following code have breakpoint, , shows exception in console.

display.getdefault().syncexec(new runnable() {   @override   public void run() {     //clear old output     htmloutput htmloutput = (htmloutput) platformui.getworkbench().getactiveworkbenchwindow().getactivepage().findview("my.view.id");   } } 

from stack trace of exception don't see related code. if let program go on running, fine, don't see trouble exception causes, can't figure what's , can't stop showing up. please me on issue.

it seems you've hit bug in eclipse. same stacktrace described in bug 445560. chances workaround described in bug report (see comment 4) helps in case:

as current local workaround issue i've added in our rcp code call debuguitools.getdebugcontextmanager() ui thread. ugly, , should not needed, avoids failures seen when launching first time.


Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -