Bug 49182 What should canceling setRawClasspath do ?
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/VariableBlock.java
public VariableBlockRunnable(List toRemove, List toChange, boolean doBuild) {
			fToRemove= toRemove;
			fToChange= toChange;
			fDoBuild= doBuild;
		}
		
		/*
	 	 * @see IRunnableWithProgress#run(IProgressMonitor)
		 */
		public void run(IProgressMonitor monitor) throws InvocationTargetException {
			monitor.beginTask(NewWizardMessages.getString("VariableBlock.operation_desc"), fDoBuild ? 2 : 1); 
			try {
				int nVariables= fToChange.size() + fToRemove.size();
				
				String[] names= new String[nVariables];
				IPath[] paths= new IPath[nVariables];
				int k= 0;
				
				for (int i= 0; i < fToChange.size(); i++) {
					CPVariableElement curr= (CPVariableElement) fToChange.get(i);
					names[k]= curr.getName();
					paths[k]= curr.getPath();
					k++;
				}
				for (int i= 0; i < fToRemove.size(); i++) {
					names[k]= (String) fToRemove.get(i);
					paths[k]= null;
					k++;					
				}
				JavaCore.setClasspathVariables(names, paths, new SubProgressMonitor(monitor, 1));