public StateDelta resolve() { return resolve(true, null);
private synchronized StateDelta resolve(boolean incremental, BundleDescription[] reResolve) { try { resolving = true; if (resolver == null) throw new IllegalStateException("no resolver set"); fullyLoad(); long start = 0; if (StateManager.DEBUG_PLATFORM_ADMIN_RESOLVER) start = System.currentTimeMillis(); if (!incremental) { resolved = false; reResolve = getBundles();  if (removalPendings.size() > 0) { BundleDescription[] removed = getRemovalPendings(); reResolve = mergeBundles(reResolve, removed); } flush(reResolve); } if (resolved && reResolve == null) return new StateDeltaImpl(this); if (removalPendings.size() > 0) { BundleDescription[] removed = getRemovalPendings(); reResolve = mergeBundles(reResolve, removed); } resolver.resolve(reResolve, platformProperties); resolved = true;  StateDelta savedChanges = changes == null ? new StateDeltaImpl(this) : changes; changes = new StateDeltaImpl(this);  if (StateManager.DEBUG_PLATFORM_ADMIN_RESOLVER) { long time = System.currentTimeMillis() - start; Debug.println("Time spent resolving: " + time); cumulativeTime = cumulativeTime + time; FrameworkDebugOptions.getDefault().setOption("org.eclipse.core.runtime.adaptor/resolver/timing/value", Long.toString(cumulativeTime)); }  return savedChanges; } finally { resolving = false; }
	public StateDelta resolve() {		return resolve(true, null);	}