Program: 125402
Project: 125402
Buggy source:
private void testProcesspropagateFileName(LocalRepositoryFactory factory,String path) throws PersistenceException {
  IProject project=ResourceUtils.getProject(sampleProject);
  ProcessItem processItem=createTempProcessItem(factory,path);
  String processId=processItem.getProperty().getId();
  FolderItem folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentName("String_Node_Str");
  factory.save(sampleProject,processItem);
  factory.unloadUnlockedResources();
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  assertTrue(((NodeType)(processItem).getProcess().getNode().get(0)).getComponentName().equals("String_Node_Str"));
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setLabel("String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setVersion("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  List<IRepositoryViewObject> objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  processItem.getProperty().setVersion("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setVersion("String_Node_Str");
  processItem.getProperty().setLabel("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  factory.deleteObjectPhysical(sampleProject,factory.getLastVersion(sampleProject,processId));
}

Fixed version (ground truth):
private void testProcesspropagateFileName(LocalRepositoryFactory factory,String path) throws PersistenceException {
  IProject project=ResourceUtils.getProject(sampleProject);
  ProcessItem processItem=createTempProcessItem(factory,path);
  String processId=processItem.getProperty().getId();
  FolderItem folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentName("String_Node_Str");
  factory.save(sampleProject,processItem);
  factory.unloadUnlockedResources();
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  assertTrue(((NodeType)(processItem).getProcess().getNode().get(0)).getComponentName().equals("String_Node_Str"));
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setLabel("String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setVersion("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  List<IRepositoryViewObject> objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  processItem.getProperty().setVersion("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  processItem=(ProcessItem)factory.getLastVersion(sampleProject,processId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
  assertNotNull(processItem.getParent());
  assertTrue(processItem.getParent().equals(folderItem));
  processItem.getProperty().setVersion("String_Node_Str");
  processItem.getProperty().setLabel("String_Node_Str");
  ((NodeType)processItem.getProcess().getNode().get(0)).setComponentVersion("String_Node_Str");
  factory.save(sampleProject,processItem);
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.PROCESS,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,processId,false);
  for (  IRepositoryViewObject object : objects) {
    assertTrue(object instanceof RepositoryObject);
    assertTrue(((NodeType)((ProcessItem)object.getProperty().getItem()).getProcess().getNode().get(0)).getComponentVersion().equals(object.getProperty().getVersion()));
    folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.PROCESS,new Path(path));
    assertNotNull(object.getProperty().getItem().getParent());
    assertTrue(object.getProperty().getItem().getParent().equals(folderItem));
  }
  factory.deleteObjectPhysical(sampleProject,factory.getLastVersion(sampleProject,processId),false);
}