fUndoChange.initializeValidationData(new SubProgressMonitor(monitor, 1));
fUndoChange.initializeValidationData(new NotCancelableProgressMonitor( new SubProgressMonitor(monitor, 1)));
			public void run(IProgressMonitor monitor) throws CoreException {				boolean undoInitialized= false;				try {					monitor.beginTask("", 10); //$NON-NLS-1$					fValidationStatus= fChange.isValid(new SubProgressMonitor(monitor, 1));					if (fValidationStatus.hasFatalError())						return;					if (fUndoManager != null) {						ResourcesPlugin.getWorkspace().checkpoint(false);						fUndoManager.aboutToPerformChange(fChange);					}					fChangeExecutionFailed= true;					fUndoChange= fChange.perform(new SubProgressMonitor(monitor, 9));					fChangeExecutionFailed= false;					fChangeExecuted= true;					if (fUndoManager != null) {						ResourcesPlugin.getWorkspace().checkpoint(false);						fUndoManager.changePerformed(fChange);					}					fChange.dispose();					if (fUndoChange != null) {						fUndoChange.initializeValidationData(new SubProgressMonitor(monitor, 1));						undoInitialized= true;					}					if (fUndoManager != null) {						if (fUndoChange != null) {							fUndoManager.addUndo(fUndoName, fUndoChange);						} else {							fUndoManager.flush();						}					}				} catch (CoreException e) {					if (fUndoManager != null)						fUndoManager.flush();					if (fUndoChange != null && undoInitialized) {						Change ch= fUndoChange;						fUndoChange= null;						ch.dispose();					}					fUndoChange= null;					throw e;				} catch (RuntimeException e) {					if (fUndoManager != null)						fUndoManager.flush();					if (fUndoChange != null && undoInitialized) {						Change ch= fUndoChange;						fUndoChange= null;						ch.dispose();					}					fUndoChange= null;					throw e;				} finally {					monitor.done();				}			}