if (fUndoManager != null)
if (fUndoManager != null) { ResourcesPlugin.getWorkspace().checkpoint(false);
				public void run(IProgressMonitor monitor) throws CoreException {					Exception exception= null;					monitor.beginTask("", 10); //$NON-NLS-1$					try {						fValidationStatus= fChange.isValid(new SubProgressMonitor(monitor, 1));						if (fValidationStatus.hasFatalError())							return;						if (fUndoManager != null)							fUndoManager.aboutToPerformChange(fChange);						fChange.perform(fChangeContext, new SubProgressMonitor(monitor, 9));					} catch (ChangeAbortException e) {						exception= e;						throw new CoreException(							new Status(								IStatus.ERROR, 								JavaPlugin.getPluginId(), IJavaStatusConstants.CHANGE_ABORTED, 								RefactoringMessages.getString("PerformChangeOperation.unrecoverable_error"), e)); //$NON-NLS-1$					} catch (CoreException e) {						exception= e;						throw e;					} catch (RuntimeException e) {						exception= e;						throw e;					} finally {						if (fUndoManager != null) {							fUndoManager.changePerformed(fChange, exception);							if (fChange.isUndoable())								fUndoManager.addUndo(fUndoName, fChange.getUndoChange());						}						monitor.done();					}				}