During TargetDefinition.resolve, P2TargetUtils resolves all
IUBundleContainers in a single pass. When IUBundleContainer::resolve is
called after that, the container is already resolved.
Calling P2TargetUtils::synchronize again would then pointlessly
re-resolve this container. Even worse, because the P2TargetUtils
instance is shared across all IUBundleContainers, it would re-resolve
also all other containers.
In effect, given a target with N IUBundleContainers, each would be
resolved 2N+1 times (2x by resolveBundles/Features of every container
plus the initial single-pass).
The P2TargetUtils::synchronize call is only guarded by a resolved check
and not removed completely for the case where only a single container is
resolved instead of its parent TargetDefinition.
Change-Id: Ib3f3d6f24595250f1986c19777132632dabd802d
Signed-off-by: Julian Honnen <julian.honnen@vector.com>