if (DEBUG) { System.out.println("Classpath:"); dumpCodeBaseList(classPath.appCodeBaseIterator(), "Application codebases"); dumpCodeBaseList(classPath.auxCodeBaseIterator(), "Auxiliary codebases"); }
	private void buildClassPath() throws InterruptedException, IOException, ResourceNotFoundException {		// Seed worklist with app codebases and aux codebases.		LinkedList<WorkListItem> workList = new LinkedList<WorkListItem>();		for (String path : project.getFileArray()) {			workList.add(new WorkListItem(classFactory.createFilesystemCodeBaseLocator(path), true));		}		for (String path : project.getAuxClasspathEntryList()) {			workList.add(new WorkListItem(classFactory.createFilesystemCodeBaseLocator(path), false));		}		// Build the classpath, scanning codebases for nested archives		// and referenced codebases.		while (!workList.isEmpty()) {			WorkListItem item = workList.removeFirst();			// Open the codebase and add it to the classpath			// FIXME: failing to open a non-application codebase should not be fatal			ICodeBase codeBase = item.getCodeBaseLocator().openCodeBase();			codeBase.setApplicationCodeBase(item.isAppCodeBase());			classPath.addCodeBase(codeBase);						// If it is a scannable codebase, check it for nested archives.			if (codeBase instanceof IScannableCodeBase) {				checkForNestedArchives(workList, (IScannableCodeBase) codeBase);			}						// Check for a Jar manifest for additional aux classpath entries.			scanJarManifestForClassPathEntries(workList, codeBase);		}	}