Hi, I’ve just start using DockingFrames and want to congratulate you on an awesome framework. I’ve managed to convert a full scale enterprise app over to the framework in less than a week.
Before going live with a new version I was doing some profiling with the YourKit profiler and noticed that when using the eclipse our MultipleCDockables were not getting garbage collected after the windows had been closed. (They are getting cleaned in the flat theme).
YourKit point to the class bibliothek.extension.gui.dock.theme.eclipse.RoundRectButton still raining a link to the dockable but I haven’t been able to track down where the link is.
Here is a screenshot of the YourKit window showing the references.
I’m not here during the weekend, but I’ll try to find out more on monday. A memory leak certainly has the highest possible priority.
It’s already wrong that a RoundRectButton still exists, because all buttons should be deleted once a Dockable is no longer visible. The PropertyValue$1 is a strong hint: RoundRectButtons install observers to a global properties-map, this allows them to read things like their color, and to update these properties if the client changes the configuration. It may be, that one of these observers is not cleaned up correctly. Since this would only affect RoundRectButton, and this button is only used by the EclipseTheme, it would explain all the issues.
Anyways, thanks for pointing out this memory leak, I had no clue of this issue.
I think I found the bug, at least in my profiler the dockables are now cleaned up. It really was the listener which was not removed properly. I’ll upload the fixed version - 1.1.1p6a - within the next 24 hours.