| Summary: | ServiceInterpreter doesn't dispose JavaExtensionsManager | ||
|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Esteban DUGUEPEROUX <esteban.dugueperoux> |
| Component: | Core | Assignee: | Project inbox <sirius.core-inbox> |
| Status: | CLOSED FIXED | QA Contact: | Jessy Mallet <jessy.mallet> |
| Severity: | major | ||
| Priority: | P3 | CC: | cedric.brun, jessy.mallet, maxime.porhel, pierre-charles.david |
| Version: | 3.0.0 | Keywords: | triaged |
| Target Milestone: | 3.1.0 | ||
| Hardware: | All | ||
| OS: | All | ||
| See Also: |
https://git.eclipse.org/r/55514 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4e64af432005735c97bca4c3a7eeeefb623af0b4 |
||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 470460 | ||
|
Description
Esteban DUGUEPEROUX
We have also an instance of JavaExtensionsManager created when validating a odesign with "service:" expression. This comes from MultiLanguagesValidator.getInstance() singleton which is used to validate odesign expression which use a CompoundInterprete to do validation and this last create a ServiceInterpreter. And as JavaExtensionsManager is instantiated on ServiceInterpreter instantiation we get a new workspace listener from WorkspaceClassLoading. To fix that the JavaExtensionsManager from ServiceInterpreter should be created lazily, i.e. only on service expression evaluation and MultiLanguagesValidator should not be a singleton. We have also an instance of JavaExtensionsManager created when validating a odesign with "service:" expression. This comes from MultiLanguagesValidator.getInstance() singleton which is used to validate odesign expression which use a CompoundInterprete to do validation and this last create a ServiceInterpreter. And as JavaExtensionsManager is instantiated on ServiceInterpreter instantiation we get a new workspace listener from WorkspaceClassLoading. To fix that the JavaExtensionsManager from ServiceInterpreter should be created lazily, i.e. only on service expression evaluation and MultiLanguagesValidator should not be a singleton. New Gerrit change created: https://git.eclipse.org/r/55514 (In reply to Eclipse Genie from comment #3) > New Gerrit change created: https://git.eclipse.org/r/55514 This changeset at least reduce the problem by making sure the extension manager is disposed when the ServiceInterpreter is. Gerrit change https://git.eclipse.org/r/55514 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4e64af432005735c97bca4c3a7eeeefb623af0b4 Fixed by 4e64af432005735c97bca4c3a7eeeefb623af0b4. No validation: Technical issue Available in Sirius 3.1.0. |