rewireBundle(imp.getMatchingExport().getExporter());
rewireBundle(imp.getMatchingExport().getExporter(), visited);
	private void rewireImport(ResolverImport imp) {		if (imp.isDynamic() || imp.getMatchingExport() != null)			return;		// Re-wire 'imp'		ResolverExport matchingExport = null;		ExportPackageDescription importSupplier = (ExportPackageDescription) imp.getVersionConstraint().getSupplier();		ResolverBundle exporter = importSupplier == null ? null : (ResolverBundle) bundleMapping.get(importSupplier.getExporter());		Object[] matches = resolverExports.get(imp.getName());		for (int j = 0; j < matches.length; j++) {			ResolverExport export = (ResolverExport) matches[j];			if (export.getExporter() == exporter && imp.isSatisfiedBy(export)) {				matchingExport = export;				break;			}		}		imp.setMatchingExport(matchingExport);		// Check if we wired to a reprovided package (in which case the ResolverExport doesn't exist)		if (matchingExport == null && exporter != null) {			ResolverExport reprovidedExport = new ResolverExport(exporter, importSupplier);			if (exporter.getExport(imp.getName()) == null) {				exporter.addExport(reprovidedExport);				resolverExports.put(reprovidedExport.getName(), reprovidedExport);			}			imp.setMatchingExport(reprovidedExport);		}		// If we still have a null wire and it's not optional, then we have an error		if (imp.getMatchingExport() == null && !imp.isOptional()) {			System.err.println("Could not find matching export for " + imp.getVersionConstraint()); //$NON-NLS-1$			// TODO log error!!		}		if (imp.getMatchingExport() != null) {			rewireBundle(imp.getMatchingExport().getExporter());		}	}