[
https://issues.apache.org/jira/browse/FELIX-5974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16667905#comment-16667905
]
Daniel Reuther commented on FELIX-5974:
---------------------------------------
[~timothyjward], thanks again for working on this! I did some tests with your
changes and all prototype-scoped services seem to get deactivated properly now
(which wasn't the case before). However, it looks like the instances themselves
still can't get garbage collected.
There's a chance my test is flawed but after calling ungetService for a
component with a prototype reference, I still see MultiplePrototypeRefPair
holding on to prototype and ComponentContextImpl instances.
> Prototype scope references are not released on deactivation
> -----------------------------------------------------------
>
> Key: FELIX-5974
> URL: https://issues.apache.org/jira/browse/FELIX-5974
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-2.1.12
> Reporter: Timothy Ward
> Priority: Major
> Fix For: scr-2.1.14
>
>
> Having read the stack overflow question on [Stack
> Overflow|https://stackoverflow.com/questions/52839641/osgi-ds-prototype-reference-not-released]
> I was pretty certain that the user must be doing something wrong, but in
> fact it seems as though SCR does a bad job of releasing Prototype scoped
> references when a component is disposed.
> I looked into the code, and it seems that there are a lot of conflicting
> locations where prototype scope services are obtained and released. I propose
> tidying this up so that the ComponentServiceObjects is *always* used
> internally regardless of whether it is injected or not. This encapsulates all
> the access in a single location so it is less likely that the objects will
> leak.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)