-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Memory leak for actions contributed for popup menu #176
Comments
Analysis: During a debugging session, I noticed that in the above scenario, 3 instances of
This instance is correctly disposed during the closing of the editor (through dispose of
This instance is correctly disposed during the closing of the editor.
This instance is never disposed. It causes the memory leak. |
The third instanciation is only here because the ActionRegistry, with |
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. Bug: #176
DO NOT MERGE ! This commit is just to check if the fix about datatransfer is operational on CI. Bug: #176
DO NOT MERGE ! This commit is just to check if the fix about datatransfer is operational on CI. Bug: #176
After several analysis, the performance problem with this leak fix occurs only for Linux users using X11. Indeed, the performance problem is caused by a default timeout of 10 seconds (sun.awt.UNIXToolkit.DEFAULT_DATATRANSFER_TIMEOUT, for example here). A solution is to reduce this timeout. For the tests, it will be set to 100ms instead of 10000ms. It has not been changed for the "standard" usage because the effect is not really under control. |
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. To avoid a performance problem, the timeout "sun.awt.datatransfer.timeout" has been set to 100 ms instead of 10000 ms for the automatic tests (see comment on issue [1] for more details). [1] #176 (comment) Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. To avoid a performance problem, the timeout "sun.awt.datatransfer.timeout" has been set to 100 ms instead of 10000 ms for the automatic tests (see comment on issue [1] for more details). [1] #176 (comment) Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. To avoid a performance problem, the timeout "sun.awt.datatransfer.timeout" has been set to 100 ms instead of 10000 ms for the automatic tests (see comment on issue [1] for more details). [1] #176 (comment) Bug: #176
Create a specific ActionBarContributor for each specific implementation of SiriusDiagramEditor to avoid a duplication of ActionRegistry: one for "SiriusDiagramEditor.class" and one for real implementation ("DDiagramEditorImpl.class" or "EcoreEntitiesReadOnlyEditor.class"). Indeed, only one of the ActionRegistry is correctly cleaned at the closing of the editor. To avoid a performance problem, the timeout "sun.awt.datatransfer.timeout" has been set to 100 ms instead of 10000 ms for the automatic tests (see comment on issue [1] for more details). [1] #176 (comment) Bug: #176
This issue is a sub part of #144. It concerns memory leak about some actions used in popup menu.
Steps to reproduce:
DDiagramEditorImpl
referenced through the_operationSet
ofFontDialogAction
:The text was updated successfully, but these errors were encountered: