Summary: | Invalid thread access in task list | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | Dani Megert <daniel_megert> | ||||
Component: | UI | Assignee: | Chris McLaren <csmclaren> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | critical | ||||||
Priority: | P1 | CC: | philippe_mulet | ||||
Version: | 2.0 | ||||||
Target Milestone: | --- | ||||||
Hardware: | PC | ||||||
OS: | Windows 2000 | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Dani Megert
2002-05-23 09:37:51 EDT
Created attachment 990 [details]
.log
Since resource delta can come in on any thread, must call viewer in a Display.syncExec i wasn't able to reproduce this problem. aside from the log message, are there any noticable ill effects of this bug? i have investigated instances where i've added code which invoked viewer methods not explicitely on the ui thread and i found only one method: TaskList.setMarkerLimitExceeded. i've replaced this method locally with the method below without any noticable problems. nick, you may choose to commit this change as a preventative measure. void setMarkerLimitExceeded(boolean markerLimitExceeded) { this.markerLimitExceeded = markerLimitExceeded; if (markerLimitExceeded) { stackLayout.topControl = compositeMarkerLimitExceeded; viewer.getControl().getDisplay().syncExec(new Runnable() { public void run() { viewer.setSelection(null); } }); } else { stackLayout.topControl = table; } parent.layout(); viewer.getControl().getDisplay().syncExec(new Runnable() { public void run() { viewer.refresh(); } }); } I think there was no effect in the UI (at least no dialog). However the log shows that there is a potential problem. this should be fixed with the latest changes i am providing nick edgar today. fixed as per previous comment |