boolean reresolveCycle = cycle.size() != cycleSize; for (int i = 0; !reresolveCycle && i < cycle.size(); i++) {
} boolean reresolveCycle = cycle.size() != cycleSize || !isCycleConsistent(cycle); for (int i = 0; i < cycle.size(); i++) {
	private void checkCycle(ArrayList cycle) {		int cycleSize = cycle.size();		if (cycleSize == 0)			return;		for (int i = cycleSize - 1; i >= 0; i--)			if (!((ResolverBundle) cycle.get(i)).isResolvable())				cycle.remove(i); // remove this from the list of bundles that need reresolved		boolean reresolveCycle = cycle.size() != cycleSize; //we removed an unresolvable bundle; must reresolve remaining cycle		for (int i = 0; !reresolveCycle && i < cycle.size(); i++) {			ResolverBundle rb = (ResolverBundle) cycle.get(0);			// Check that we haven't wired to any dropped exports			ResolverImport[] imports = rb.getImportPackages();			for (int j = 0; j < imports.length; j++)				// check for dropped exports				if (imports[j].getMatchingExport() != null && imports[j].getMatchingExport().isDropped()) {					imports[j].addUnresolvableWiring(imports[j].getMatchingExport().getExporter());					reresolveCycle = true;				}		}		if (reresolveCycle) {			for (int i = 0; i < cycle.size(); i++)				((ResolverBundle) cycle.get(i)).clearWires(false);			ArrayList innerCycle = new ArrayList(cycle.size());			for (int i = 0; i < cycle.size(); i++)				resolveBundle((ResolverBundle) cycle.get(i), innerCycle);			checkCycle(innerCycle);		} else {			for (int i = 0; i < cycle.size(); i++) {				if (DEBUG || DEBUG_CYCLES)					ResolverImpl.log("Pushing " + cycle.get(i) + " to RESOLVED"); //$NON-NLS-1$ //$NON-NLS-2$				setBundleResolved((ResolverBundle) cycle.get(i));			}		}	}