Community
Participate
Working Groups
hi, i need to clear the cached resources from the DecorationScheduler in my plugin. because of the caching, i got problems with the updating of images when there are "to much" repaint events for my TreeViewer
The cache is cleared everytime decoration sends label updates. Is this issue that you have a state change inbetween? As far as getting too many updates it may be because you have too many requests. clearing the caches will make your problem worse as we will be calculating more often.
my problem is that i send many refresh "commands" to the treeViewer and not every image is updated. for this reason i debugged the code of DecorationScheduler and i established that the image will not be refreshed if it should but the old cached image is given back. as workaround i implement a special treeViewer which refreshs the viewer after a delay of no refresh requests(i've attached that file). but it's only a workaround! imho it is a bug of the DecorationScheduler!!!
Created attachment 27164 [details] tree viewer with refresh delay
OK so this is the problem I thought - the issue here is that all updates for the same object requested after the first are ignored. The cache is cleared after the label provider changed event. If the decorator changes in that time you will get stale values. The workaround is to wait for the label updates on the stale objects and then request again.
but do you work on a fix of this bug? imho a accessor to clear the cache will be enought...
We are generally looking at decorator issues for 3.2 and this is one of the ones we will be discussing.
mouse slipped
Oleg is now responsible for watching the [Decorators] category.
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.