| Summary: | SnapshotImpl instance kept by ExecutionJob after closing the editor | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] MAT | Reporter: | Krum Tsvetkov <krum.tsvetkov> | ||||
| Component: | Core | Assignee: | Krum Tsvetkov <krum.tsvetkov> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | ||||||
| Version: | 1.0 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Krum Tsvetkov
Created attachment 168125 [details]
Path keeping the SnapshotImpl alive
This is the path keeping the SnapshotImpl alive. I noticed that sometimes the job stays displayed in the "Progress" view. If this happens then our instance of ExecutionJob keeps the Editor and other resources. To be on the safe side I will "cleanup" the job after it is executed. By cleanup I mean setting the problematic fields to null
I submitted the changes from comment 1. I'll keep the message open for a while to investigate why sometimes the jobs disappear and sometimes they are left in the list of the Process view. The ClassReferrersQuery kept a reference to the ProgressListener it initially received and reused it afterwards on every tree expansion (i.e. every time the IResultTree.getChildren() method is called). This is wrong, as the job for which the progress listener was created is already finished and the listener has reported "done". I removed fully the usage of progress listener while expanding this tree. May be we should design our IResult subclasses like IResultTree to support progress information and pass a proper listener to them. However this will be an API change which I'm not sure we really need. With this small change I think the reported bug is solved. I close the message now. |