Skip to content
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

LifecycleManager reatains classes forever #74

Closed
laeubi opened this issue Jan 24, 2023 · 1 comment · Fixed by #138
Closed

LifecycleManager reatains classes forever #74

laeubi opened this issue Jan 24, 2023 · 1 comment · Fixed by #138

Comments

@laeubi
Copy link
Contributor

laeubi commented Jan 24, 2023

The following Map in LifecycleManager
https://github.com/eclipse/sisu.inject/blob/6fa4bc1a635f1e8ec91e438bcb059f414d713f70/org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/LifecycleManager.java#L31-L32

prevents no longer used classes (and more important their classloaders) from being garbage collected, see for example

This should use some strategies like WeakHashMap so if the class is only referenced from this component it could still be freed.

See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=581407

@odrotbohm
Copy link

Thanks for moving this into the right place, @laeubi! 🙇

laeubi added a commit to laeubi/sisu.inject that referenced this issue Jan 24, 2023
Currently there is no way to ever remove a key from the map, this can
lead to accumulation of memory as it is strongly referencing the class.

This adds a new method so keys can be removed from the map

See eclipse-sisu#74
laeubi added a commit to laeubi/sisu.inject that referenced this issue Feb 6, 2023
Currently there is no way to ever remove a key from the map, this can
lead to accumulation of memory as it is strongly referencing the class.

This adds a new method so keys can be removed from the map

See eclipse-sisu#74
laeubi referenced this issue in laeubi/sisu.inject Feb 6, 2023
Currently there is no way to ever remove a key from the map, this can
lead to accumulation of memory as it is strongly referencing the class.

This adds a new method so keys can be removed from the map

See eclipse#74

Signed-off-by: Christoph Läubrich <[email protected]>
cstamas added a commit that referenced this issue May 31, 2024
Currently there is no way to ever remove a key from the map, this can lead to accumulation of memory as it is strongly referencing the class.

This adds a new method so keys can be removed from the map

Fixes #74

Signed-off-by: Christoph Läubrich <[email protected]>
Co-authored-by: Christoph Läubrich <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants