ResolverExport[] importerExp = imp != null ? imp.getBundle().getExports(candConstraints[i].getName()) : new ResolverExport[0]; for (int j = 0; j < importerExp.length; j++) if (!importerExp[j].isDropped() && !isOnRoot(importerExp[j].getRoots(), candConstraints[i]))  return existing;
if (imp.getBundle() != candConstraints[i].getExporter()) {  ResolverExport[] importerExp = imp.getBundle().getExports(candConstraints[i].getName()); if (importerExp.length > 0) { ResolverImport alsoImported = imp.getBundle().getImport(candConstraints[i].getName());  if (alsoImported == null || alsoImported.getMatchingExport() != null) for (int j = 0; j < importerExp.length; j++) if (!importerExp[j].isDropped() && !isOnRoot(importerExp[j].getRoots(), candConstraints[i]))  return existing; } }
	private ResolverExport checkImpExpConflict(ResolverImport imp, ResolverExport existing, ResolverExport candidate, ResolverExport[] candConstraints) {		if (existing == null)			return null; // for an import that has not been resolved		// check the constraints of the existing wire against the candidate only 		// if the existing wire is not the candidate		if (existing != candidate) {			ResolverExport[] impConstraints = getConstraints(existing);			for (int j = 0; j < impConstraints.length; j++)				if (isConflict(candidate, impConstraints[j]))					return existing;		}		// Check existing wirings against constraints from candidate wiring		for (int i = 0; i < candConstraints.length; i++) {			// check if we export this package			ResolverExport[] importerExp = imp != null ? imp.getBundle().getExports(candConstraints[i].getName()) : new ResolverExport[0];			for (int j = 0; j < importerExp.length; j++)				if (!importerExp[j].isDropped() && !isOnRoot(importerExp[j].getRoots(), candConstraints[i]))					// if we export the package and it is not the same one then we have a clash					return existing;			if (isConflict(existing, candConstraints[i]))				return existing;		}		return null;	}