[
https://issues.apache.org/jira/browse/DOSGI-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13681323#comment-13681323
]
Amichai Rothman commented on DOSGI-171:
---------------------------------------
Update: most of these usages have been fixed, but a few troublemakers still
remain.
> 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
>
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira