[ 
https://issues.apache.org/jira/browse/DOSGI-171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Schneider resolved DOSGI-171.
---------------------------------------
       Resolution: Fixed
         Assignee: Christian Schneider
    Fix Version/s: 2.0.0

I just checked the current code and did not find any missing ungetService 
anymore. 

I did not check all of Aries RSA though so. If you find any occurence there 
please open a ticket at Aries.

> service objects are never released (using ungetService)
> -------------------------------------------------------
>
>                 Key: DOSGI-171
>                 URL: https://issues.apache.org/jira/browse/DOSGI-171
>             Project: CXF Distributed OSGi
>          Issue Type: Bug
>    Affects Versions: 1.4.0, 1.5.0
>            Reporter: Amichai Rothman
>            Assignee: Christian Schneider
>             Fix For: 2.0.0
>
>
> The BundleContext.getService() spec/API states that for every time this 
> method returns a service object, it must later be released using 
> BundleContext.ungetService(). Further, after ungetService is called, all 
> references to the service object should be removed (set to null) so that it 
> can be properly released.
> Currently, there are many usages of getService in the code, but none of them 
> release the reference as required.
> The recommendation seems to be to use service trackers where possible instead 
> of directly accessing the getService/ungetService APIs, since the 
> ServiceTracker was created for this exact purpose - to properly handle all 
> the bookkeeping for service references. Alternatively, in places in which a 
> ServiceTracker is not appropriate and the services are used locally, the 
> getService call should be followed by a try-finally block which always ungets 
> the service when done as is standard practice with resource management. 
> Finally, in places in which the service access is not contained in a local 
> method, and is stored in a field or passed around, proper resource release 
> should be performed (ungetService called and references nulled afterwards) in 
> an appropriate way for those cases (when closing or releasing the containing 
> class instance, etc.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to