if (item.isAppCodeBase()) {
if (item.getHowDiscovered() == ICodeBase.SPECIFIED) {
	private void processWorkList(			IClassPath classPath,			LinkedList<WorkListItem> workList, IClassPathBuilderProgress progress)			throws InterruptedException, IOException, ResourceNotFoundException {		// Build the classpath, scanning codebases for nested archives		// and referenced codebases.		while (!workList.isEmpty()) {			WorkListItem item = workList.removeFirst();			if (DEBUG) {				System.out.println("Working: " + item.getCodeBaseLocator());			}						DiscoveredCodeBase discoveredCodeBase;						// See if we have encountered this codebase before			discoveredCodeBase = discoveredCodeBaseMap.get(item.getCodeBaseLocator().toString());			if (discoveredCodeBase != null) {				// If the codebase is not an app codebase and				// the worklist item says that it is an app codebase,				// change it.  Otherwise, we have nothing to do.				if (!discoveredCodeBase.getCodeBase().isApplicationCodeBase() && item.isAppCodeBase()) {					discoveredCodeBase.getCodeBase().setApplicationCodeBase(true);				}								continue;			}						// If we are working on an application codebase,			// then failing to open/scan it is a fatal error.			// We issue warnings about problems with aux codebases,			// but continue anyway.			try {				// Open the codebase and add it to the classpath				discoveredCodeBase = new DiscoveredCodeBase(item.getCodeBaseLocator().openCodeBase());				discoveredCodeBase.getCodeBase().setApplicationCodeBase(item.isAppCodeBase());								// Note that this codebase has been visited				discoveredCodeBaseMap.put(item.getCodeBaseLocator().toString(), discoveredCodeBase);				discoveredCodeBaseList.addLast(discoveredCodeBase);				// If it is a scannable codebase, check it for nested archives.				// In addition, if it is an application codebase then				// make a list of application classes.				if (discoveredCodeBase.getCodeBase() instanceof IScannableCodeBase) {					scanCodebase(classPath, workList, discoveredCodeBase);				}				// Check for a Jar manifest for additional aux classpath entries.				scanJarManifestForClassPathEntries(workList, discoveredCodeBase.getCodeBase());			} catch (IOException e) {				if (item.isAppCodeBase()) {					throw e;				} else if (item.getHowDiscovered() == SPECIFIED) {					errorLogger.logError("Cannot open codebase " + item.getCodeBaseLocator(), e);				}			} catch (ResourceNotFoundException e) {				if (item.isAppCodeBase()) {					throw e;				} else if (item.getHowDiscovered() == SPECIFIED) {					errorLogger.logError("Cannot open codebase " + item.getCodeBaseLocator(), e);				}			}						if (item.isAppCodeBase()) {				progress.finishArchive();			}		}	}