Program: 139517
Project: 139517
Buggy source:
private void moveItems(IFolder oldSubFolder,IFolder newSubfolder,final String folderProperty) throws CoreException {
  if (!oldSubFolder.exists())   return;
  TdqPropertieManager.getInstance().addFolderProperties(newSubfolder,DQStructureManager.FOLDER_CLASSIFY_KEY,folderProperty);
  for (  IResource oldResource : oldSubFolder.members()) {
    if (newSubfolder.getName().equals(oldResource.getName())) {
      continue;
    }
    if (oldResource instanceof IFolder) {
      IFolder oldFolder=(IFolder)oldResource;
      IFolder newFolder=DQStructureManager.getInstance().createNewFolder(newSubfolder,oldFolder.getName());
      TdqPropertieManager.getInstance().addFolderProperties(newFolder,DQStructureManager.FOLDER_CLASSIFY_KEY,folderProperty);
      moveItems(oldFolder,newFolder,folderProperty);
      oldFolder.delete(true,null);
    }
    if (oldResource instanceof IFile) {
      IFile file=(IFile)oldResource;
      final ModelElement eltFromLibraryFolder=getModelElement(file,folderProperty);
      final EList<Dependency> supplierDependency=eltFromLibraryFolder.getSupplierDependency();
      if (supplierDependency.isEmpty()) {
        oldResource.copy(newSubfolder.getFolder(oldResource.getName()).getFullPath(),true,null);
      }
 else {
        List<Analysis> analyses=new ArrayList<Analysis>();
        for (        Dependency dependency : supplierDependency) {
          URI newUri=URI.createPlatformResourceURI(newSubfolder.getFullPath().toOSString(),true);
          EMFUtil.changeUri(eltFromLibraryFolder.eResource(),newUri);
          final EList<ModelElement> clientAnalyses=dependency.getClient();
          for (          ModelElement modelElement : clientAnalyses) {
            Analysis analysis=DataqualitySwitchHelper.ANALYSIS_SWITCH.doSwitch(modelElement);
            if (analysis != null) {
              analyses.add(analysis);
            }
          }
        }
        for (        Analysis analysis : analyses) {
          final EList<Dependency> clientDependency=analysis.getClientDependency();
          List<Dependency> newClientDeps=new ArrayList<Dependency>();
          for (          Dependency dependency : clientDependency) {
            if (!dependency.eIsProxy()) {
              newClientDeps.add(dependency);
            }
          }
          clientDependency.clear();
          clientDependency.addAll(newClientDeps);
          AnaResourceFileHelper.getInstance().save(analysis);
        }
      }
      oldResource.delete(true,null);
    }
  }
}

Fixed version (ground truth):
private void moveItems(IFolder oldSubFolder,IFolder newSubfolder,final String folderProperty) throws CoreException {
  if (!oldSubFolder.exists())   return;
  TdqPropertieManager.getInstance().addFolderProperties(newSubfolder,DQStructureManager.FOLDER_CLASSIFY_KEY,folderProperty);
  for (  IResource oldResource : oldSubFolder.members()) {
    if (newSubfolder.getName().equals(oldResource.getName())) {
      continue;
    }
    if (oldResource instanceof IFolder) {
      IFolder oldFolder=(IFolder)oldResource;
      IFolder newFolder=DQStructureManager.getInstance().createNewFolder(newSubfolder,oldFolder.getName());
      TdqPropertieManager.getInstance().addFolderProperties(newFolder,DQStructureManager.FOLDER_CLASSIFY_KEY,folderProperty);
      moveItems(oldFolder,newFolder,folderProperty);
      oldFolder.delete(true,null);
    }
    if (oldResource instanceof IFile) {
      IFile file=(IFile)oldResource;
      final ModelElement eltFromLibraryFolder=getModelElement(file,folderProperty);
      final EList<Dependency> supplierDependency=eltFromLibraryFolder.getSupplierDependency();
      if (supplierDependency.isEmpty()) {
        oldResource.copy(newSubfolder.getFolder(oldResource.getName()).getFullPath(),true,null);
      }
 else {
        List<Analysis> analyses=new ArrayList<Analysis>();
        for (        Dependency dependency : supplierDependency) {
          URI newUri=URI.createPlatformResourceURI(newSubfolder.getFullPath().toOSString(),true);
          EMFUtil.changeUri(eltFromLibraryFolder.eResource(),newUri);
          final EList<ModelElement> clientAnalyses=dependency.getClient();
          for (          ModelElement modelElement : clientAnalyses) {
            Analysis analysis=DataqualitySwitchHelper.ANALYSIS_SWITCH.doSwitch(modelElement);
            if (analysis != null) {
              analyses.add(analysis);
            }
          }
        }
        for (        Analysis analysis : analyses) {
          final EList<Dependency> clientDependency=analysis.getClientDependency();
          List<Dependency> newClientDeps=new ArrayList<Dependency>();
          for (          Dependency dependency : clientDependency) {
            if (!dependency.eIsProxy()) {
              newClientDeps.add(dependency);
            }
          }
          clientDependency.clear();
          clientDependency.addAll(newClientDeps);
          AnaResourceFileHelper.getInstance().save(analysis);
        }
      }
      remove(file);
    }
  }
}