Thanks guys! Great info.
- Ray On Tue, Aug 26, 2014 at 5:24 PM, Neil Bartlett <[email protected]> wrote: > Yes. If you called getService and received a non-null, but no longer need > the service object, then you should unget. > > Failing to do so will not exactly cause a memory leak but it may be > “unfriendly”. For example, suppose that a provider is using a > ServiceFactory, and the object it allocates for each consumer bundle is > expensive. By ungetting, you give the provider an opportunity to reclaim > those resources. > > The case is less compelling for ordinary singleton services… but remember, > as a consumer you don’t know if the provider is a singleton or a factory, > it’s an implementation detail of the provider. So it’s better to do the > right thing all the time. > > Neil > > > On 27 August 2014 at 01:09:26, Raymond Auge ([email protected]) > wrote: > > What about if I'm in a STC or ST and decide to return null to indicate I > choose to not track the service, I suppose I should also ungetService (if I > did call getService() ) before returning? > > - Ray > > > On Tue, Aug 26, 2014 at 4:53 PM, BJ Hargrave <[email protected]> wrote: > >> If the ServiceTrackerCustomizer (STC) or the equivalent methods on >> ServiceTracker (ST) gets the service, it must also unget the service. >> Balance. >> >> So I would say it is bad form to not call ungetService on remove if >> getService was called on add. >> -- *BJ Hargrave* >> Senior Technical Staff Member, IBM >> OSGi Fellow and CTO of the *OSGi Alliance* <http://www.osgi.org/> >> *[email protected]* <[email protected]> >> >> office: +1 386 848 1781 >> mobile: +1 386 848 3788 >> >> >> >> >> >> From: Raymond Auge <[email protected]> >> To: OSGi Developer Mail List <[email protected]> >> Date: 2014/08/26 17:13 >> Subject: [osgi-dev] calling bundleContext.ungetService() >> Sent by: [email protected] >> ------------------------------ >> >> >> >> Hey all, >> >> I'd like some help to settle an internal debate. >> >> Is it bad form to *NOT* call bundleContext.ungetService() from a service >> tracker? >> >> -- >> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> >> (@rotty3000) >> Senior Software Architect >> *Liferay, Inc.* <http://www.liferay.com/> (@Liferay) >> _______________________________________________ >> OSGi Developer Mail List >> [email protected] >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> >> _______________________________________________ >> OSGi Developer Mail List >> [email protected] >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> > > > > -- > *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> > (@rotty3000) > Senior Software Architect > *Liferay, Inc.* <http://www.liferay.com> (@Liferay) > > _______________________________________________ > OSGi Developer Mail List > [email protected] > https://mail.osgi.org/mailman/listinfo/osgi-dev > > -- *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay)
_______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
