On 20/05/17 18:48, Henrik Niehaus wrote:
I noticed a behavior with SCR, which I don't understand. I'm using a
multiple dynamic reference for a list like this:
@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy =
ReferencePolicy.DYNAMIC, bind="addService", unbind="removeService")
private List<WeatherService> services = new ArrayList<>();
Use a Set<> i.s.o. a List<>.
even better would probably be CopyOnWriteArraySet, depending on your
usage scenario.
This works as I expect it. All 5 instances get added to the list.
At startup SCR tells me, that it would be a good idea to make this list
volatile, which makes sense. So I tried that and ended up with 6
instances in my list, which I don't understand. When I set a breakpoint
in the bind method "addService", it turns out, that the list already
contains an element when it is called the first time. One service is
contained twice in the list. And it is always the service, which is
added at last. Is this intended? Am I doing something wrong?
- Henrik
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
--
Ferry Huberts
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev