FELIX-4428 but the behavior is a regression since the fix for FELIX-4656 was released. The issue is only with dynamic import package resolution. In this case a new CopyOnWriteList is created by Candidates.add(Requirement, List<Capability>) from the method Candidates.populateDynamic(ResolveContext, Resource, Requirement, List<Capability>) but the original List<Capability> list may be modified in the next call to Candidates.processCandidates(ResolveContext, Resource, List<Capability>)
The issue is that processCandidates is responsible for inserting hosted capabilities into the candidates List. Previously to the fix for
FELIX-4656 the passed in List was used as is so modifying it later would effect the list stored in the Candidates data structure also. This is no longer the case.