private void internalConfigureJavaProject(List classPathEntries, IPath outputLocation, IProgressMonitor monitor) throws CoreException, OperationCanceledException {
private void internalConfigureJavaProject(List classPathEntries, IPath outputLocation, IRemoveOldBinariesQuery reorgQuery, IProgressMonitor monitor) throws CoreException, OperationCanceledException {
	private void internalConfigureJavaProject(List classPathEntries, IPath outputLocation, IProgressMonitor monitor) throws CoreException, OperationCanceledException {		// 10 monitor steps to go				IRemoveOldBinariesQuery reorgQuery= getRemoveOldBinariesQuery(null);		// remove old .class files		if (reorgQuery != null) {			IPath oldOutputLocation= fCurrJProject.getOutputLocation();			if (!outputLocation.equals(oldOutputLocation)) {				IResource res= fWorkspaceRoot.findMember(oldOutputLocation);				if (res instanceof IContainer && hasClassfiles(res)) {					if (reorgQuery.doQuery(oldOutputLocation)) {						removeOldClassfiles(res);					}				}			}				}				// create and set the output path first		if (!fWorkspaceRoot.exists(outputLocation)) {			IFolder folder= fWorkspaceRoot.getFolder(outputLocation);			CoreUtility.createFolder(folder, true, true, null);			folder.setDerived(true);				}				if (monitor.isCanceled()) {			throw new OperationCanceledException();		}		monitor.worked(2);						int nEntries= classPathEntries.size();		IClasspathEntry[] classpath= new IClasspathEntry[nEntries];				ArrayList paths= new ArrayList();		ArrayList urls= new ArrayList();				// create and set the class path		for (int i= 0; i < nEntries; i++) {			CPListElement entry= ((CPListElement)classPathEntries.get(i));			IResource res= entry.getResource();			if ((res instanceof IFolder) && !res.exists()) {				CoreUtility.createFolder((IFolder)res, true, true, null);			}			if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {				IPath folderOutput= (IPath) entry.getAttribute(CPListElement.OUTPUT);				if (folderOutput != null && folderOutput.segmentCount() > 1) {					IFolder folder= fWorkspaceRoot.getFolder(folderOutput);					CoreUtility.createFolder(folder, true, true, null);				}			}						classpath[i]= entry.getClasspathEntry();			entry.collectJavaDocLocations(paths, urls);		}			JavaUI.setLibraryJavadocLocations((IPath[]) paths.toArray(new IPath[paths.size()]), (URL[]) urls.toArray(new URL[paths.size()]));				if (monitor.isCanceled()) {			throw new OperationCanceledException();		}		monitor.worked(1);						fCurrJProject.setRawClasspath(classpath, outputLocation, new SubProgressMonitor(monitor, 7));		initializeTimeStamps();	}