Carsten Ziegeler created FELIX-4977:
---------------------------------------
Summary: Concurrency issue with factory services
Key: FELIX-4977
URL: https://issues.apache.org/jira/browse/FELIX-4977
Project: Felix
Issue Type: Bug
Components: Framework
Affects Versions: framework-5.0.1
Reporter: Carsten Ziegeler
Assignee: David Bosschaert
Fix For: framework-5.0.2
It seems there is a chance that a service object returned for a factory service
is already unget. The scenario is like this:
Two threads from the same bundle get the same service which happens to be a
service factory.
While the first thread calls already ungetService, the second thread is in the
getService method. The second service gets the same object as the first one,
but as the first one passed "successfully" through ungetService, the object is
unget and - depending on how its implemented - not usable anymore.
After some analysis together with David, it seems that both threads get the
same usage count object, the ungetService thread decreases the count to zero
before the getService thread increases it.
Therefore the service object is unget but at the same returned to the next
client
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)