Community
Participate
Working Groups
In DAnalysisSessionImpl.close(IProgressMonitor), the first thing is to check if it is opened and to return without doing nothing if not. The close method cleans "stuff" done at opening but also "stuff" done at instantiation. So if someone creates a DASI without open it, he can not "clean" this DASI and this leads to memory leaks. The goal of this issue is to allow the close method to clean all "instantiation stuff" even if the DASI is not opened. This is the less impacting solution. Another approach would be to have a dispose method, but the order of each statement in close method is probably important. Examples of "stuff" not cleaned: * disable and remove ECrossReferenceAdapters * several listeners on TransactionalEditingDomain (dRepresentationChangeListener, changeIdUpdaterListener, ...) * flush of the CommandStack * unload of resources * ...
https://git.eclipse.org/r/#/c/163010/ Proposition of fix
Gerrit change https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/163010 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=c3820e5d62985f28ed4dac80a00ecabdae99c366
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/167301
How to verified this issue?
Verified with Team for Capella product
Available in Sirius 6.4.0, see https://download.eclipse.org/sirius/updates/releases/6.4.0/ for details.