Program: 101995
Project: 101995
Buggy source:
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor progressMonitor) throws OperationCanceledException {
  clearChanges();
  RefactoringStatus status=new RefactoringStatus();
  try {
    String destinationPath=ModelUtil.getLocation(destination).makeAbsolute().toOSString();
    progressMonitor.beginTask(RefactorResourcesUtils.getString("String_Node_Str"),2);
    Set<PathPair> pathPairs=RefactorResourcesUtils.calculateResourceMoves(getResources(),destinationPath,RefactorResourcesUtils.Option.EXCLUDE_FOLDERS);
    RelatedResourceCallback relatedResourceCallback=new RelatedResourceCallback(pathPairs);
    for (    IResource resource : getResources()) {
      RefactorResourcesUtils.calculateRelatedResources(resource,status,relatedResourceCallback,Relationship.DEPENDENT);
      if (ModelUtil.isModelFile(resource)) {
        IFile file=(IFile)resource;
        Set<PathPair> importPathPairs=RefactorResourcesUtils.calculateImportChanges(file,destinationPath,getResourcesAndChildren(status));
        TextFileChange textFileChange=RefactorResourcesUtils.calculateTextChanges(file,importPathPairs);
        if (addTextChange(file,textFileChange)) {
          RefactorResourcesUtils.calculateRelatedVdbResources(file,status,new VdbResourceCallback());
        }
      }
      addChange(resource,new MoveResourceChange(resource,destination));
    }
  }
 catch (  Exception ex) {
    UiConstants.Util.log(ex);
    status.merge(RefactoringStatus.createFatalErrorStatus(ex.getMessage()));
    return status;
  }
 finally {
    progressMonitor.done();
  }
  return status;
}

Fixed version (ground truth):
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor progressMonitor) throws OperationCanceledException {
  clearChanges();
  RefactoringStatus status=new RefactoringStatus();
  try {
    String destinationPath=ModelUtil.getLocation(destination).makeAbsolute().toOSString();
    progressMonitor.beginTask(RefactorResourcesUtils.getString("String_Node_Str"),2);
    Set<PathPair> pathPairs=RefactorResourcesUtils.calculateResourceMoves(getResources(),destinationPath,RefactorResourcesUtils.Option.EXCLUDE_FOLDERS);
    RelatedResourceCallback relatedResourceCallback=new RelatedResourceCallback(pathPairs);
    for (    IResource resource : getResources()) {
      RefactorResourcesUtils.calculateRelatedResources(resource,status,relatedResourceCallback,Relationship.DEPENDENT);
      if (ModelUtil.isModelFile(resource)) {
        IFile file=(IFile)resource;
        Set<PathPair> importPathPairs=RefactorResourcesUtils.calculateImportChanges(file,destinationPath,getResourcesAndChildren(status));
        TextFileChange textFileChange=RefactorResourcesUtils.calculateTextChanges(file,importPathPairs);
        for (        PathPair pair : importPathPairs) {
          RefactorResourcesUtils.calculateModelImportsElementLChanges(file,pair,textFileChange);
        }
        if (addTextChange(file,textFileChange)) {
          RefactorResourcesUtils.calculateRelatedVdbResources(file,status,new VdbResourceCallback());
        }
      }
      addChange(resource,new MoveResourceChange(resource,destination));
    }
  }
 catch (  Exception ex) {
    UiConstants.Util.log(ex);
    status.merge(RefactoringStatus.createFatalErrorStatus(ex.getMessage()));
    return status;
  }
 finally {
    progressMonitor.done();
  }
  return status;
}