Community
Participate
Working Groups
1) Open Eclipse in a profiler such as optimizeIt 2) Select Team->Synchronize on a project 3) When the resulting sync view opens, close it. 4) In OptimizeIt, force a garbage collection. 5) Notice that all the objects allocated for the sync view are still around. There is a memory leak in the compare FW that holds onto the DiffTreeViewer instance, which means all the model objects inside it are held onto. I suspect the method DiffTreeViewer#handleDispose: protected void handleDispose(DisposeEvent event) { if (fPreferenceChangeListener != null) { IPreferenceStore ps= CompareUIPlugin.getDefault().getPreferenceStore(); if (ps != null) ps.addPropertyChangeListener(fPreferenceChangeListener); fPreferenceChangeListener= null; } ... etc ... } Notice that in handleDispose, it ADDS a property change listener, rather than removing. I'm not 100% certain if this is the source of the memory leak, but it seems likely. This is a fairly major bug, because it means users who frequently close the sync view without syncing end up with large amounts of garbage being held onto. NOTES: AW (27.09.2001 10:02:55) fixed in > 0.0201
This does not appear to have been fixed in 0.203.
PRODUCT VERSION: Build 0.131
Verified that suggested patch is in build 011113