Program: 125404
Project: 125404
Buggy source:
private void testRoutinepropagateFileName2(LocalRepositoryFactory factory,String path) throws PersistenceException {
  IProject project=ResourceUtils.getProject(sampleProject);
  RoutineItem routineItem=createTempRoutineItem(factory,path);
  FolderItem folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  String routineId=routineItem.getProperty().getId();
  routineItem.getProperty().setLabel("String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  routineItem.getProperty().setVersion("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  List<IRepositoryViewObject> objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 2);
  routineItem=(RoutineItem)factory.getLastVersion(sampleProject,routineId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  routineItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  routineItem.getProperty().setVersion("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 3);
  routineItem=(RoutineItem)factory.getLastVersion(sampleProject,routineId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  routineItem.getProperty().setVersion("String_Node_Str");
  routineItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 4);
  factory.deleteObjectPhysical(sampleProject,factory.getLastVersion(sampleProject,routineId));
}

Fixed version (ground truth):
private void testRoutinepropagateFileName2(LocalRepositoryFactory factory,String path) throws PersistenceException {
  IProject project=ResourceUtils.getProject(sampleProject);
  RoutineItem routineItem=createTempRoutineItem(factory,path);
  FolderItem folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  String routineId=routineItem.getProperty().getId();
  routineItem.getProperty().setLabel("String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  routineItem.getProperty().setVersion("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  factory.unloadUnlockedResources();
  List<IRepositoryViewObject> objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 2);
  routineItem=(RoutineItem)factory.getLastVersion(sampleProject,routineId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  routineItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  routineItem.getProperty().setVersion("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 3);
  routineItem=(RoutineItem)factory.getLastVersion(sampleProject,routineId).getProperty().getItem();
  folderItem=factory.getFolderItem(sampleProject,ERepositoryObjectType.ROUTINES,new Path(path));
  assertNotNull(routineItem.getParent());
  assertTrue(routineItem.getParent().equals(folderItem));
  routineItem.getProperty().setVersion("String_Node_Str");
  routineItem.getProperty().setLabel("String_Node_Str");
  factory.save(sampleProject,routineItem.getProperty());
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  checkFileNotExists(project,ERepositoryObjectType.ROUTINES,path,"String_Node_Str","String_Node_Str");
  objects=factory.getAllVersion(sampleProject,routineId,false);
  assertTrue(objects.size() == 4);
  factory.deleteObjectPhysical(sampleProject,factory.getLastVersion(sampleProject,routineId),false);
}