fWorkingCopies.clear();
	public Change createChange(final IProgressMonitor monitor) throws CoreException, OperationCanceledException {		Assert.isNotNull(monitor);		try {			monitor.beginTask("", 1); //$NON-NLS-1$			monitor.setTaskName(RefactoringCoreMessages.CompositeRefactoring_creating_change);			final Set changes= new HashSet(fChanges.values());			changes.addAll(fCustomChanges);			return new DynamicValidationStateChange(getName(), (Change[]) changes.toArray(new Change[changes.size()]));		} finally {			fCustomChanges.clear();			fChanges.clear();			fGlobalOwner= null;			fLocalOwners.clear();			final Collection copies= fWorkingCopies.values();			final IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1);			subMonitor.beginTask(RefactoringCoreMessages.CompositeRefactoring_creating_change, copies.size());			for (final Iterator iterator= copies.iterator(); iterator.hasNext();) {				((ICompilationUnit) iterator.next()).discardWorkingCopy();				subMonitor.worked(1);			}			subMonitor.done();			monitor.done();		}	}