fCurrJProject.setRawClasspath(newEntries, outputLocation, monitor);
	public void createPackageFragmentRoot(IProgressMonitor monitor) throws CoreException, InterruptedException {		if (monitor == null) {			monitor= new NullProgressMonitor();		}		Shell shell= getShell();		String relPath= fRootDialogField.getText();					IFolder folder= fCurrJProject.getProject().getFolder(relPath);		IPath path= folder.getFullPath();		if (!folder.exists()) {			CoreUtility.createFolder(folder, true, true, monitor);					}				IClasspathEntry[] entries= fCurrJProject.getRawClasspath();		IClasspathEntry[] newEntries;		IPath outputLocation= fOutputLocation;				if (fIsProjectAsSourceFolder) {			IPath projPath= fCurrJProject.getProject().getFullPath();			newEntries= new IClasspathEntry[entries.length];			for (int i= 0; i < newEntries.length; i++) {				IClasspathEntry curr= entries[i];				if (curr.getEntryKind() == IClasspathEntry.CPE_SOURCE && curr.getPath().equals(projPath)) {							curr= JavaCore.newSourceEntry(path);				}				newEntries[i]= curr;			}			if (outputLocation.equals(projPath)) {				outputLocation= projPath.append(PreferenceConstants.getPreferenceStore().getString(PreferenceConstants.SRCBIN_BINNAME));				if (BuildPathsBlock.hasClassfiles(fCurrJProject.getProject())) {					if (BuildPathsBlock.getRemoveOldBinariesQuery(shell).doQuery(projPath)) {						BuildPathsBlock.removeOldClassfiles(fCurrJProject.getProject());					}				}			}		} else {			newEntries= new IClasspathEntry[entries.length + 1];			int k= entries.length;			for (int i= k - 1; i >= 0; i--) {				IClasspathEntry curr= entries[i];				if (k > i && curr.getEntryKind() == IClasspathEntry.CPE_SOURCE) {					newEntries[k--]= JavaCore.newSourceEntry(path);				}				newEntries[k--]= curr;			}			if (k == 0) {				newEntries[k--]= JavaCore.newSourceEntry(path);			}		}				fCurrJProject.setRawClasspath(newEntries, outputLocation, monitor);				fCreatedRoot= fCurrJProject.getPackageFragmentRoot(folder);	}