nus-yam/ex-repair huggingface dataset:
Program: 70003
Project: 70003
Buggy source:
public RegistrationAdminController(UserRequest ureq,WindowControl wControl){
  super(ureq,wControl,"String_Node_Str");
  registrationModule=CoreSpringFactory.getImpl(RegistrationModule.class);
  registrationManager=CoreSpringFactory.getImpl(RegistrationManager.class);
  userPropertiesConfig=CoreSpringFactory.getImpl(UserPropertiesConfig.class);
  setTranslator(userPropertiesConfig.getTranslator(getTranslator()));
  enableRegistrationValues[0]=translate("String_Node_Str");
  List<UserPropertyHandler> allPropertyHandlers=userPropertiesConfig.getAllUserPropertyHandlers();
  List<UserPropertyHandler> propertyHandlers=new ArrayList<UserPropertyHandler>(allPropertyHandlers.size());
  for (  UserPropertyHandler handler : allPropertyHandlers) {
    if (handler instanceof Generic127CharTextPropertyHandler) {
      propertyHandlers.add(handler);
    }
  }
  propertyKeys=new String[propertyHandlers.size() + 1];
  propertyValues=new String[propertyHandlers.size() + 1];
  int count=0;
  propertyKeys[0]="String_Node_Str";
  propertyValues[0]="String_Node_Str";
  for (  UserPropertyHandler propertyHandler : propertyHandlers) {
    propertyKeys[1 + count]=propertyHandler.getName();
    propertyValues[1 + count++]=translate(propertyHandler.i18nFormElementLabelKey());
  }
  initForm(ureq);
}

Fixed version (ground truth):
public RegistrationAdminController(UserRequest ureq,WindowControl wControl){
  super(ureq,wControl,"String_Node_Str");
  registrationModule=CoreSpringFactory.getImpl(RegistrationModule.class);
  registrationManager=CoreSpringFactory.getImpl(RegistrationManager.class);
  userPropertiesConfig=CoreSpringFactory.getImpl(UserPropertiesConfig.class);
  userPropTranslator=userPropertiesConfig.getTranslator(getTranslator());
  enableRegistrationValues[0]=translate("String_Node_Str");
  List<UserPropertyHandler> allPropertyHandlers=userPropertiesConfig.getAllUserPropertyHandlers();
  List<UserPropertyHandler> propertyHandlers=new ArrayList<UserPropertyHandler>(allPropertyHandlers.size());
  for (  UserPropertyHandler handler : allPropertyHandlers) {
    if (handler instanceof Generic127CharTextPropertyHandler) {
      propertyHandlers.add(handler);
    }
  }
  propertyKeys=new String[propertyHandlers.size() + 1];
  propertyValues=new String[propertyHandlers.size() + 1];
  int count=0;
  propertyKeys[0]="String_Node_Str";
  propertyValues[0]="String_Node_Str";
  for (  UserPropertyHandler propertyHandler : propertyHandlers) {
    propertyKeys[1 + count]=propertyHandler.getName();
    propertyValues[1 + count++]=userPropTranslator.translate(propertyHandler.i18nFormElementLabelKey());
  }
  initForm(ureq);
}
Program: 70004
Project: 70004
Buggy source:
protected void initSelectionElements(){
  boolean createValues=(values == null) || (values.length == 0);
  if (createValues) {
    values=new String[keys.length];
    for (int i=0; i < keys.length; i++) {
      values[i]=translator.translate(keys[i]);
    }
  }
  String[] items=new String[keys.length];
  for (int i=0; i < keys.length; i++) {
    CheckboxElementComponent ssec=new CheckboxElementComponent(getName() + "String_Node_Str" + keys[i],translator,this,i,(cssClasses == null ? null : cssClasses[i]));
    formLayoutContainer.put(getName() + "String_Node_Str" + keys[i],ssec);
    items[i]=getName() + "String_Node_Str" + keys[i];
    if (GUIInterna.isLoadPerformanceMode()) {
      if (getRootForm() != null) {
        getRootForm().getReplayableDispatchID(ssec);
      }
    }
  }
  SelectboxComponent sssc=new SelectboxComponent(getFormItemId() + "String_Node_Str",getName() + "String_Node_Str",translator,this,keys,values,cssClasses);
  formLayoutContainer.put(getName() + "String_Node_Str",sssc);
  formLayoutContainer.contextPut("String_Node_Str",getName() + "String_Node_Str");
  formLayoutContainer.contextPut("String_Node_Str",items);
  formLayoutContainer.contextPut("String_Node_Str",items.length);
  formLayoutContainer.setDirty(true);
}

Fixed version (ground truth):
protected void initSelectionElements(){
  boolean createValues=(values == null) || (values.length == 0);
  if (createValues) {
    values=new String[keys.length];
    for (int i=0; i < keys.length; i++) {
      values[i]=translator.translate(keys[i]);
    }
  }
  String[] items=new String[keys.length];
  for (int i=0; i < keys.length; i++) {
    CheckboxElementComponent ssec=new CheckboxElementComponent(getName() + "String_Node_Str" + keys[i],translator,this,i,(cssClasses == null ? null : cssClasses[i]));
    formLayoutContainer.put(getName() + "String_Node_Str" + keys[i],ssec);
    items[i]=getName() + "String_Node_Str" + keys[i];
    if (GUIInterna.isLoadPerformanceMode()) {
      if (getRootForm() != null) {
        getRootForm().getReplayableDispatchID(ssec);
      }
    }
  }
  String ssscId=getFormItemId() == null ? null : getFormItemId() + "String_Node_Str";
  SelectboxComponent sssc=new SelectboxComponent(ssscId,getName() + "String_Node_Str",translator,this,keys,values,cssClasses);
  formLayoutContainer.put(getName() + "String_Node_Str",sssc);
  formLayoutContainer.contextPut("String_Node_Str",getName() + "String_Node_Str");
  formLayoutContainer.contextPut("String_Node_Str",items);
  formLayoutContainer.contextPut("String_Node_Str",items.length);
  formLayoutContainer.setDirty(true);
}
Program: 70005
Project: 70005
Buggy source:
private void initSelectionElements(){
  boolean createValues=(values == null) || (values.length == 0);
  if (createValues) {
    values=new String[keys.length];
    for (int i=0; i < keys.length; i++) {
      values[i]=translator.translate(keys[i]);
    }
  }
  String[] items=new String[keys.length];
  for (int i=0; i < keys.length; i++) {
    RadioElementComponent ssec=new RadioElementComponent(getName() + "String_Node_Str" + keys[i],translator,this,i);
    formLayoutContainer.put(getName() + "String_Node_Str" + keys[i],ssec);
    items[i]=getName() + "String_Node_Str" + keys[i];
    if (GUIInterna.isLoadPerformanceMode()) {
      getRootForm().getReplayableDispatchID(ssec);
    }
  }
  SelectboxComponent sssc=new SelectboxComponent(getFormItemId() + "String_Node_Str",getName() + "String_Node_Str",translator,this,keys,values,cssClasses);
  formLayoutContainer.put(getName() + "String_Node_Str",sssc);
  formLayoutContainer.contextPut("String_Node_Str",getName() + "String_Node_Str");
  formLayoutContainer.contextPut("String_Node_Str",items);
}

Fixed version (ground truth):
private void initSelectionElements(){
  boolean createValues=(values == null) || (values.length == 0);
  if (createValues) {
    values=new String[keys.length];
    for (int i=0; i < keys.length; i++) {
      values[i]=translator.translate(keys[i]);
    }
  }
  String[] items=new String[keys.length];
  for (int i=0; i < keys.length; i++) {
    RadioElementComponent ssec=new RadioElementComponent(getName() + "String_Node_Str" + keys[i],translator,this,i);
    formLayoutContainer.put(getName() + "String_Node_Str" + keys[i],ssec);
    items[i]=getName() + "String_Node_Str" + keys[i];
    if (GUIInterna.isLoadPerformanceMode()) {
      getRootForm().getReplayableDispatchID(ssec);
    }
  }
  String ssscId=getFormItemId() == null ? null : getFormItemId() + "String_Node_Str";
  SelectboxComponent sssc=new SelectboxComponent(ssscId,getName() + "String_Node_Str",translator,this,keys,values,cssClasses);
  formLayoutContainer.put(getName() + "String_Node_Str",sssc);
  formLayoutContainer.contextPut("String_Node_Str",getName() + "String_Node_Str");
  formLayoutContainer.contextPut("String_Node_Str",items);
}
Program: 70007
Project: 70007
Buggy source:
private void openCourse(UserRequest ureq){
  List<ContextEntry> ces=new ArrayList<ContextEntry>(1);
  OLATResourceable ores=OresHelper.createOLATResourceableInstance("String_Node_Str",efficiencyStatement.getCourseRepoEntryKey());
  ces.add(BusinessControlFactory.getInstance().createContextEntry(ores));
  BusinessControl bc=BusinessControlFactory.getInstance().createFromContextEntries(ces);
  WindowControl bwControl=BusinessControlFactory.getInstance().createBusinessWindowControl(bc,getWindowControl());
  NewControllerFactory.getInstance().launch(ureq,bwControl);
}

Fixed version (ground truth):
private void openCourse(UserRequest ureq){
  List<ContextEntry> ces=new ArrayList<ContextEntry>(1);
  OLATResourceable ores=OresHelper.createOLATResourceableInstance("String_Node_Str",courseRepoKey);
  ces.add(BusinessControlFactory.getInstance().createContextEntry(ores));
  BusinessControl bc=BusinessControlFactory.getInstance().createFromContextEntries(ces);
  WindowControl bwControl=BusinessControlFactory.getInstance().createBusinessWindowControl(bc,getWindowControl());
  NewControllerFactory.getInstance().launch(ureq,bwControl);
}
Program: 70008
Project: 70008
Buggy source:
public EfficiencyStatementController(WindowControl wControl,UserRequest ureq,Identity statementOwner,BusinessGroup businessGroup,EfficiencyStatement efficiencyStatement,boolean mainLayout){
  super(ureq,wControl);
  this.businessGroupKey=businessGroup == null ? null : businessGroup.getKey();
  this.statementOwner=statementOwner;
  this.efficiencyStatement=efficiencyStatement;
  init(ureq,statementOwner,businessGroup,true);
}

Fixed version (ground truth):
public EfficiencyStatementController(WindowControl wControl,UserRequest ureq,Identity statementOwner,BusinessGroup businessGroup,RepositoryEntry courseRepo,EfficiencyStatement efficiencyStatement,boolean links,boolean mainLayout){
  super(ureq,wControl);
  this.courseRepoKey=courseRepo == null ? (efficiencyStatement == null ? null : efficiencyStatement.getCourseRepoEntryKey()) : courseRepo.getKey();
  if (courseRepo == null && courseRepoKey != null) {
    courseRepo=RepositoryManager.getInstance().lookupRepositoryEntry(courseRepoKey,false);
  }
  if (businessGroup == null && courseRepo != null) {
    ICourse course=CourseFactory.loadCourse(courseRepo.getOlatResource());
    List<BusinessGroup> groups=course.getCourseEnvironment().getCourseGroupManager().getParticipatingLearningGroupsFromAllContexts(statementOwner);
    if (groups.size() > 0) {
      businessGroup=groups.get(0);
    }
  }
  this.businessGroupKey=businessGroup == null ? null : businessGroup.getKey();
  this.statementOwner=statementOwner;
  this.efficiencyStatement=efficiencyStatement;
  init(ureq,statementOwner,courseRepo,businessGroup,links,true);
}
Program: 70010
Project: 70010
Buggy source:
private void createStatement(Property property){
  String repoKeyStr=property.getName();
  Long repoKey=new Long(repoKeyStr);
  RepositoryEntry re=repositoryManager.lookupRepositoryEntry(repoKey,false);
  UserEfficiencyStatementImpl impl=efficiencyStatementManager.getUserEfficiencyStatementFull(repoKey,property.getIdentity());
  if (impl != null) {
    return;
  }
  UserEfficiencyStatementImpl statement=new UserEfficiencyStatementImpl();
  statement.setIdentity(property.getIdentity());
  statement.setStatementXml(property.getTextValue());
  if (re != null) {
    statement.setResource(re.getOlatResource());
  }
  EfficiencyStatement s=(EfficiencyStatement)XStreamHelper.createXStreamInstance().fromXML(property.getTextValue());
  efficiencyStatementManager.fillEfficiencyStatement(s,statement);
  statement.setLastModified(property.getLastModified());
  dbInstance.saveObject(statement);
  dbInstance.commitAndCloseSession();
}

Fixed version (ground truth):
private void createStatement(Property property){
  String repoKeyStr=property.getName();
  Long repoKey=new Long(repoKeyStr);
  RepositoryEntry re=repositoryManager.lookupRepositoryEntry(repoKey,false);
  UserEfficiencyStatementImpl impl=efficiencyStatementManager.getUserEfficiencyStatementFull(repoKey,property.getIdentity());
  if (impl != null) {
    return;
  }
  UserEfficiencyStatementImpl statement=new UserEfficiencyStatementImpl();
  statement.setIdentity(property.getIdentity());
  statement.setStatementXml(property.getTextValue());
  if (re != null) {
    statement.setResource(re.getOlatResource());
    statement.setCourseRepoKey(re.getKey());
  }
  EfficiencyStatement s=(EfficiencyStatement)XStreamHelper.createXStreamInstance().fromXML(property.getTextValue());
  efficiencyStatementManager.fillEfficiencyStatement(s,statement);
  statement.setLastModified(property.getLastModified());
  dbInstance.saveObject(statement);
  dbInstance.commitAndCloseSession();
}
Program: 70011
Project: 70011
Buggy source:
protected boolean validateFormLogic(UserRequest ureq){
  for (  Project.EventType eventType : eventStartElementList.keySet()) {
    Date startDate=eventStartElementList.get(eventType).getDate();
    Date endDate=eventEndElementList.get(eventType).getDate();
    getLogger().debug("String_Node_Str" + startDate + "String_Node_Str"+ endDate);
    if ((startDate != null) && (endDate != null) && startDate.after(endDate)) {
      eventStartElementList.get(eventType).setErrorKey("String_Node_Str",null);
      return false;
    }
  }
  if (!project.getTitle().equals(projectTitle.getValue()) && ProjectBrokerManagerFactory.getProjectBrokerManager().existProjectName(project.getProjectBroker().getKey(),projectTitle.getValue())) {
    projectTitle.setErrorKey("String_Node_Str",null);
    return false;
  }
  if (projectTitle.getValue().trim().isEmpty()) {
    projectTitle.setErrorKey("String_Node_Str",null);
    return false;
  }
  return true;
}

Fixed version (ground truth):
protected boolean validateFormLogic(UserRequest ureq){
  for (  Project.EventType eventType : eventStartElementList.keySet()) {
    Date startDate=eventStartElementList.get(eventType).getDate();
    Date endDate=eventEndElementList.get(eventType).getDate();
    getLogger().debug("String_Node_Str" + startDate + "String_Node_Str"+ endDate);
    if ((startDate != null) && (endDate != null) && startDate.after(endDate)) {
      eventStartElementList.get(eventType).setErrorKey("String_Node_Str",null);
      return false;
    }
  }
  if (!project.getTitle().equals(projectTitle.getValue()) && ProjectBrokerManagerFactory.getProjectBrokerManager().existProjectName(project.getProjectBroker().getKey(),projectTitle.getValue())) {
    projectTitle.setErrorKey("String_Node_Str",null);
    return false;
  }
  if (projectTitle.getValue().trim().isEmpty()) {
    projectTitle.setErrorKey("String_Node_Str",null);
    return false;
  }
  if (attachmentFileName.getUploadFileName().length() > 99) {
    attachmentFileName.setErrorKey("String_Node_Str",null);
    return false;
  }
  return true;
}
Program: 70012
Project: 70012
Buggy source:
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  FormLayoutContainer buttonLayout=FormLayoutContainer.createButtonLayout("String_Node_Str",getTranslator());
  formLayout.add(buttonLayout);
  uifactory.addFormSubmitButton("String_Node_Str","String_Node_Str",buttonLayout);
  bttNo=uifactory.addFormLink("String_Node_Str","String_Node_Str","String_Node_Str",buttonLayout,Link.BUTTON);
}

Fixed version (ground truth):
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  askagainCheckbox=uifactory.addCheckboxesHorizontal("String_Node_Str",null,formLayout,askagain_keys,new String[]{translate("String_Node_Str")},null);
  FormLayoutContainer buttonLayout=FormLayoutContainer.createButtonLayout("String_Node_Str",getTranslator());
  formLayout.add(buttonLayout);
  uifactory.addFormSubmitButton("String_Node_Str","String_Node_Str",buttonLayout);
  bttNo=uifactory.addFormLink("String_Node_Str","String_Node_Str","String_Node_Str",buttonLayout,Link.BUTTON);
}
Program: 70013
Project: 70013
Buggy source:
@Override protected void formOK(UserRequest ureq){
  fireEvent(ureq,Event.DONE_EVENT);
  HistoryPoint historyEntry=HistoryManager.getInstance().readHistoryPoint(ureq.getIdentity());
  if (historyEntry != null && StringHelper.containsNonWhitespace(historyEntry.getBusinessPath())) {
    BusinessControl bc=BusinessControlFactory.getInstance().createFromContextEntries(historyEntry.getEntries());
    WindowControl bwControl=BusinessControlFactory.getInstance().createBusinessWindowControl(bc,getWindowControl());
    try {
      NewControllerFactory.getInstance().launch(ureq,bwControl);
    }
 catch (    Exception e) {
      logError("String_Node_Str",e);
    }
  }
}

Fixed version (ground truth):
@Override protected void formOK(UserRequest ureq){
  if (askagainCheckbox.isSelected(0)) {
    Preferences prefs=ureq.getUserSession().getGuiPreferences();
    prefs.put(WindowManager.class,"String_Node_Str","String_Node_Str");
    prefs.save();
  }
  fireEvent(ureq,Event.DONE_EVENT);
  HistoryPoint historyEntry=HistoryManager.getInstance().readHistoryPoint(ureq.getIdentity());
  if (historyEntry != null && StringHelper.containsNonWhitespace(historyEntry.getBusinessPath())) {
    BusinessControl bc=BusinessControlFactory.getInstance().createFromContextEntries(historyEntry.getEntries());
    WindowControl bwControl=BusinessControlFactory.getInstance().createBusinessWindowControl(bc,getWindowControl());
    try {
      NewControllerFactory.getInstance().launch(ureq,bwControl);
    }
 catch (    Exception e) {
      logError("String_Node_Str",e);
    }
  }
}
Program: 70014
Project: 70014
Buggy source:
@Override protected void formCancelled(UserRequest ureq){
  fireEvent(ureq,Event.CANCELLED_EVENT);
}

Fixed version (ground truth):
@Override protected void formCancelled(UserRequest ureq){
  if (askagainCheckbox.isSelected(0)) {
    Preferences prefs=ureq.getUserSession().getGuiPreferences();
    prefs.put(WindowManager.class,"String_Node_Str","String_Node_Str");
    prefs.save();
  }
  fireEvent(ureq,Event.CANCELLED_EVENT);
}
Program: 70019
Project: 70019
Buggy source:
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  flc.contextPut("String_Node_Str",getLocale());
  if (logger.isDebug())   logger.debug("String_Node_Str" + map.getTitle() + "String_Node_Str"+ map.getResourceableId()+ "String_Node_Str"+ map.getKey());
  subsContext=new SubscriptionContext(EPNotificationsHandler.TYPENNAME,map.getResourceableId(),EPNotificationsHandler.TYPENNAME);
  if (subsContext != null) {
    String businnessPath=getWindowControl().getBusinessControl().getAsString();
    PublisherData data=new PublisherData(EPNotificationsHandler.TYPENNAME,null,businnessPath);
    cSubscriptionCtrl=new ContextualSubscriptionController(ureq,getWindowControl(),subsContext,data);
    listenTo(cSubscriptionCtrl);
    flc.put("String_Node_Str",cSubscriptionCtrl.getInitialComponent());
  }
  dateChooser=uifactory.addDateChooser("String_Node_Str","String_Node_Str",null,formLayout);
  dateChooser.setDate(new Date());
  dateChooser.addActionListener(this,FormEvent.ONCHANGE);
  updateChangelogDisplay(ureq);
}

Fixed version (ground truth):
@Override protected void initForm(FormItemContainer formLayout,Controller listener,UserRequest ureq){
  flc.contextPut("String_Node_Str",getLocale());
  if (logger.isDebug())   logger.debug("String_Node_Str" + map.getTitle() + "String_Node_Str"+ map.getResourceableId()+ "String_Node_Str"+ map.getKey());
  subsContext=new SubscriptionContext(EPNotificationsHandler.TYPENNAME,map.getResourceableId(),EPNotificationsHandler.TYPENNAME);
  if (subsContext != null) {
    String businessPath="String_Node_Str" + map.getKey() + "String_Node_Str";
    PublisherData data=new PublisherData(EPNotificationsHandler.TYPENNAME,null,businessPath);
    cSubscriptionCtrl=new ContextualSubscriptionController(ureq,getWindowControl(),subsContext,data);
    listenTo(cSubscriptionCtrl);
    flc.put("String_Node_Str",cSubscriptionCtrl.getInitialComponent());
  }
  dateChooser=uifactory.addDateChooser("String_Node_Str","String_Node_Str",null,formLayout);
  dateChooser.setDate(new Date());
  dateChooser.addActionListener(this,FormEvent.ONCHANGE);
  updateChangelogDisplay(ureq);
}
Program: 70020
Project: 70020
Buggy source:
private void updateLogViewFromWriter(){
  if (logViewerVC == null)   return;
  StringBuffer sb=writer.getBuffer();
  String log=sb.toString();
  if (removeLogNoise) {
    Matcher m=logNoiseReducePattern.matcher(log);
    log=m.replaceAll("String_Node_Str");
  }
  logViewerVC.contextPut("String_Node_Str",Formatter.escWithBR(log));
  if (sb.length() > 100000) {
    int nextLineBreakAfterHalfPos=sb.indexOf("String_Node_Str",sb.length() / 2);
    sb.delete(0,nextLineBreakAfterHalfPos);
  }
}

Fixed version (ground truth):
private synchronized void updateLogViewFromWriter(){
  if (logViewerVC == null)   return;
  StringBuffer sb=writer.getBuffer();
  String log=sb.toString();
  if (removeLogNoise) {
    Matcher m=logNoiseReducePattern.matcher(log);
    log=m.replaceAll("String_Node_Str");
  }
  logViewerVC.contextPut("String_Node_Str",Formatter.escWithBR(log));
  if (sb.length() > 100000) {
    int nextLineBreakAfterHalfPos=sb.indexOf("String_Node_Str",sb.length() / 2);
    sb.delete(0,nextLineBreakAfterHalfPos);
  }
}
Program: 70021
Project: 70021
Buggy source:
/** 
 * @see org.olat.core.gui.control.DefaultController#doDispose()
 */
@Override protected void doDispose(){
  if (logViewerVC != null) {
    Scheduler scheduler=(Scheduler)CoreSpringFactory.getBean("String_Node_Str");
    try {
      scheduler.deleteJob(jobName,LOG_DISPLAYER_GROUP);
      scheduler.removeJobListener(jobName);
    }
 catch (    SchedulerException e) {
      logError("String_Node_Str",e);
    }
    log4JLogger.removeAppender(writerAppender);
    log4JLogger=null;
    writerAppender.close();
    writerAppender=null;
    try {
      writer.close();
    }
 catch (    IOException e) {
      logError("String_Node_Str",e);
    }
    writer=null;
    updateLink=null;
    logViewerVC=null;
  }
}

Fixed version (ground truth):
/** 
 * @see org.olat.core.gui.control.DefaultController#doDispose()
 */
@Override protected void doDispose(){
  if (logViewerVC != null) {
    Scheduler scheduler=(Scheduler)CoreSpringFactory.getBean("String_Node_Str");
    try {
      scheduler.deleteJob(jobName,LOG_DISPLAYER_GROUP);
      scheduler.removeJobListener(jobName);
    }
 catch (    SchedulerException e) {
      logError("String_Node_Str",e);
    }
    log4JLogger.removeAppender(writerAppender);
    log4JLogger=null;
    writerAppender.close();
    writerAppender=null;
    try {
      writer.close();
    }
 catch (    IOException e) {
      logError("String_Node_Str",e);
    }
synchronized (this) {
      writer=null;
      updateLink=null;
      logViewerVC=null;
    }
  }
}
Program: 70022
Project: 70022
Buggy source:
public static String getSetFlexiFormDirtyForCheckbox(Form form,String id){
  String result;
  String prefix=id + "String_Node_Str";
  String postfix="String_Node_Str" + form.getDispatchFieldId() + "String_Node_Str";
  result=prefix + "String_Node_Str" + postfix;
  result+=prefix + "String_Node_Str" + postfix;
  return result;
}

Fixed version (ground truth):
public static String getSetFlexiFormDirtyForCheckbox(Form form,String id){
  String result;
  String prefix=secureJSVarName(id) + "String_Node_Str";
  String postfix="String_Node_Str" + form.getDispatchFieldId() + "String_Node_Str";
  result=prefix + "String_Node_Str" + postfix;
  result+=prefix + "String_Node_Str" + postfix;
  return result;
}
Program: 70023
Project: 70023
Buggy source:
public static String getSetFlexiFormDirty(Form form,String id){
  String result;
  String prefix=id + "String_Node_Str";
  String postfix="String_Node_Str" + form.getDispatchFieldId() + "String_Node_Str";
  result=prefix + "String_Node_Str" + postfix;
  result+=prefix + "String_Node_Str" + postfix;
  return result;
}

Fixed version (ground truth):
public static String getSetFlexiFormDirty(Form form,String id){
  String result;
  String prefix=secureJSVarName(id) + "String_Node_Str";
  String postfix="String_Node_Str" + form.getDispatchFieldId() + "String_Node_Str";
  result=prefix + "String_Node_Str" + postfix;
  result+=prefix + "String_Node_Str" + postfix;
  return result;
}
Program: 70024
Project: 70024
Buggy source:
public static String getJSStartWithVarDeclaration(String id){
  StringBuffer sb=new StringBuffer(120);
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(id).append("String_Node_Str").append(id).append("String_Node_Str");
  return sb.toString();
}

Fixed version (ground truth):
public static String getJSStartWithVarDeclaration(String id){
  StringBuffer sb=new StringBuffer(120);
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(secureJSVarName(id)).append("String_Node_Str").append(id).append("String_Node_Str");
  return sb.toString();
}
Program: 70025
Project: 70025
Buggy source:
public static String getExtJSVarDeclaration(String id){
  return "String_Node_Str" + id + "String_Node_Str"+ id+ "String_Node_Str";
}

Fixed version (ground truth):
public static String getExtJSVarDeclaration(String id){
  return "String_Node_Str" + secureJSVarName(id) + "String_Node_Str"+ id+ "String_Node_Str";
}
Program: 70026
Project: 70026
Buggy source:
/** 
 * @param us
 * @return the Windows for this user
 */
public static Windows getWindows(UserSession us){
  Windows ws=(Windows)us.getEntry(SESSIONID_NAME_FOR_WINDOWS);
  if (ws == null) {
    ws=new Windows();
    us.putEntry(SESSIONID_NAME_FOR_WINDOWS,ws);
  }
  return ws;
}

Fixed version (ground truth):
/** 
 * @param us
 * @return the Windows for this user
 */
public static Windows getWindows(UserSession us){
  Windows ws;
synchronized (us) {
    ws=(Windows)us.getEntry(SESSIONID_NAME_FOR_WINDOWS);
    if (ws == null) {
      ws=new Windows();
      us.putEntry(SESSIONID_NAME_FOR_WINDOWS,ws);
    }
  }
  return ws;
}
Program: 70028
Project: 70028
Buggy source:
/** 
 * Add horizontal aligned radio buttons. <br>
 * @param name
 * @param i18nLabel
 * @param formLayout
 * @param theKeys
 * @param theValues
 * @return
 */
public SingleSelection addRadiosHorizontal(final String name,final String i18nLabel,FormItemContainer formLayout,final String[] theKeys,final String[] theValues){
  SingleSelection ss=new SingleSelectionImpl(null,name,SingleSelectionImpl.createHorizontalLayout(null,name)){
{
      this.keys=theKeys;
      this.values=theValues;
    }
  }
;
  setLabelIfNotNull(i18nLabel,ss);
  formLayout.add(ss);
  return ss;
}

Fixed version (ground truth):
/** 
 * Add horizontal aligned radio buttons. <br>
 * @param name
 * @param i18nLabel
 * @param formLayout
 * @param theKeys
 * @param theValues
 * @return
 */
public SingleSelection addRadiosHorizontal(final String name,final String i18nLabel,FormItemContainer formLayout,final String[] theKeys,final String[] theValues){
  SingleSelection ss=new SingleSelectionImpl(name,name,SingleSelectionImpl.createHorizontalLayout(null,name)){
{
      this.keys=theKeys;
      this.values=theValues;
    }
  }
;
  setLabelIfNotNull(i18nLabel,ss);
  formLayout.add(ss);
  return ss;
}
Program: 70029
Project: 70029
Buggy source:
/** 
 * Add vertical aligned radio buttons<br>
 * @param name
 * @param i18nLabel
 * @param formLayout
 * @param theKeys
 * @param theValues
 * @return
 */
public SingleSelection addRadiosVertical(final String name,final String i18nLabel,FormItemContainer formLayout,final String[] theKeys,final String[] theValues){
  SingleSelection ss=new SingleSelectionImpl(null,name,SingleSelectionImpl.createVerticalLayout(null,name)){
{
      this.keys=theKeys;
      this.values=theValues;
    }
  }
;
  setLabelIfNotNull(i18nLabel,ss);
  formLayout.add(ss);
  return ss;
}

Fixed version (ground truth):
/** 
 * Add vertical aligned radio buttons<br>
 * @param name
 * @param i18nLabel
 * @param formLayout
 * @param theKeys
 * @param theValues
 * @return
 */
public SingleSelection addRadiosVertical(final String name,final String i18nLabel,FormItemContainer formLayout,final String[] theKeys,final String[] theValues){
  SingleSelection ss=new SingleSelectionImpl(name,name,SingleSelectionImpl.createVerticalLayout(null,name)){
{
      this.keys=theKeys;
      this.values=theValues;
    }
  }
;
  setLabelIfNotNull(i18nLabel,ss);
  formLayout.add(ss);
  return ss;
}
Program: 70032
Project: 70032
Buggy source:
/** 
 * 1. Calculate if the node should be accessible at all. <br/> 2. If the coursenode is visible, build a treenode.
 */
public void build(){
  for (Iterator iter=accesses.values().iterator(); iter.hasNext(); ) {
    Boolean entry=(Boolean)iter.next();
    atLeastOneAccessible=atLeastOneAccessible || entry.booleanValue();
  }
  if (isVisible()) {
    gtn=new GenericTreeNode();
    gtn.setTitle(courseNode.getShortTitle());
    gtn.setAltText(courseNode.getLongTitle());
    String type=courseNode.getType();
    CourseNodeConfiguration cnConfig=CourseNodeFactory.getInstance().getCourseNodeConfigurationEvenForDisabledBB(type);
    String nodeCssClass=cnConfig.getIconCSSClass();
    gtn.setIconCssClass(nodeCssClass);
    gtn.setUserObject(this);
    gtn.setAccessible(true);
  }
}

Fixed version (ground truth):
/** 
 * 1. Calculate if the node should be accessible at all. <br/> 2. If the coursenode is visible, build a treenode.
 */
public void build(){
  for (Iterator iter=accesses.values().iterator(); iter.hasNext(); ) {
    Boolean entry=(Boolean)iter.next();
    atLeastOneAccessible=atLeastOneAccessible || entry.booleanValue();
  }
  if (isVisible()) {
    gtn=new GenericTreeNode();
    gtn.setTitle(courseNode.getShortTitle());
    gtn.setAltText(courseNode.getLongTitle());
    String type=courseNode.getType();
    CourseNodeConfiguration cnConfig=CourseNodeFactory.getInstance().getCourseNodeConfigurationEvenForDisabledBB(type);
    if (cnConfig != null) {
      String nodeCssClass=cnConfig.getIconCSSClass();
      gtn.setIconCssClass(nodeCssClass);
    }
    gtn.setUserObject(this);
    gtn.setAccessible(true);
  }
}
Program: 70035
Project: 70035
Buggy source:
/** 
 * @see org.olat.core.util.vfs.VFSItem#resolveFile(java.lang.String)
 */
public VFSItem resolve(String path){
  path=VFSManager.sanitizePath(path);
  if (path.equals("String_Node_Str"))   return this;
  String childName=VFSManager.extractChild(path);
  VFSItem vfsItem=null;
  for (Iterator iter=mergedContainers.iterator(); iter.hasNext(); ) {
    VFSContainer container=(VFSContainer)iter.next();
    String nextPath=path.substring(childName.length() + 1);
    boolean nameMatch=container.getName().equals(childName);
    if (container instanceof NamedContainerImpl && !nameMatch) {
      container=((NamedContainerImpl)container).getDelegate();
      String name=container.getName();
      if (name == null) {
        continue;
      }
      nameMatch=name.equals(childName);
    }
    if (nameMatch) {
      vfsItem=container.resolve(nextPath);
      if (vfsItem != null && vfsItem instanceof VFSContainer) {
        VFSContainer resolvedContainer=(VFSContainer)vfsItem;
        resolvedContainer.setDefaultItemFilter(defaultFilter);
      }
      return vfsItem;
    }
  }
  for (Iterator iter=mergedContainersChildren.iterator(); iter.hasNext(); ) {
    VFSContainer container=(VFSContainer)iter.next();
    if (container instanceof NamedContainerImpl) {
      container=((NamedContainerImpl)container).getDelegate();
    }
    vfsItem=container.resolve(path);
    if (vfsItem != null) {
      if (vfsItem instanceof VFSContainer) {
        VFSContainer resolvedContainer=(VFSContainer)vfsItem;
        resolvedContainer.setDefaultItemFilter(defaultFilter);
      }
      return vfsItem;
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * @see org.olat.core.util.vfs.VFSItem#resolveFile(java.lang.String)
 */
public VFSItem resolve(String path){
  path=VFSManager.sanitizePath(path);
  if (path.equals("String_Node_Str"))   return this;
  String childName=VFSManager.extractChild(path);
  VFSItem vfsItem=null;
  for (  VFSContainer container : mergedContainers) {
    String nextPath=path.substring(childName.length() + 1);
    boolean nameMatch=container.getName().equals(childName);
    if (container instanceof NamedContainerImpl && !nameMatch) {
      container=((NamedContainerImpl)container).getDelegate();
      String name=container.getName();
      if (name == null) {
        continue;
      }
      nameMatch=name.equals(childName);
    }
    if (nameMatch) {
      vfsItem=container.resolve(nextPath);
      if (vfsItem != null && vfsItem instanceof VFSContainer) {
        VFSContainer resolvedContainer=(VFSContainer)vfsItem;
        resolvedContainer.setDefaultItemFilter(defaultFilter);
      }
      return vfsItem;
    }
  }
  for (  VFSContainer container : mergedContainersChildren) {
    if (container instanceof NamedContainerImpl) {
      container=((NamedContainerImpl)container).getDelegate();
    }
    vfsItem=container.resolve(path);
    if (vfsItem != null) {
      if (vfsItem instanceof VFSContainer) {
        VFSContainer resolvedContainer=(VFSContainer)vfsItem;
        resolvedContainer.setDefaultItemFilter(defaultFilter);
      }
      return vfsItem;
    }
  }
  return null;
}
Program: 70036
Project: 70036
Buggy source:
/** 
 * @see org.olat.core.util.vfs.VFSContainer#getItems(org.olat.core.util.vfs.filters.VFSItemFilter)
 */
public List getItems(VFSItemFilter filter){
  List all=new ArrayList();
  if (filter == null && defaultFilter == null) {
    all.addAll(mergedContainers);
  }
 else {
    for (Iterator iter=mergedContainers.iterator(); iter.hasNext(); ) {
      VFSContainer mergedContainer=(VFSContainer)iter.next();
      boolean passedFilter=true;
      if (defaultFilter != null && !defaultFilter.accept(mergedContainer))       passedFilter=false;
      if (passedFilter && filter != null && !filter.accept(mergedContainer))       passedFilter=false;
      if (passedFilter)       all.add(mergedContainer);
    }
  }
  for (Iterator iter=mergedContainersChildren.iterator(); iter.hasNext(); ) {
    VFSContainer container=(VFSContainer)iter.next();
    all.addAll(container.getItems(filter));
  }
  return all;
}

Fixed version (ground truth):
/** 
 * @see org.olat.core.util.vfs.VFSContainer#getItems(org.olat.core.util.vfs.filters.VFSItemFilter)
 */
public List<VFSItem> getItems(VFSItemFilter filter){
  List<VFSItem> all=new ArrayList<VFSItem>();
  if (filter == null && defaultFilter == null) {
    all.addAll(mergedContainers);
  }
 else {
    for (    VFSContainer mergedContainer : mergedContainers) {
      boolean passedFilter=true;
      if (defaultFilter != null && !defaultFilter.accept(mergedContainer))       passedFilter=false;
      if (passedFilter && filter != null && !filter.accept(mergedContainer))       passedFilter=false;
      if (passedFilter)       all.add(mergedContainer);
    }
  }
  for (  VFSContainer container : mergedContainersChildren) {
    all.addAll(container.getItems(filter));
  }
  return all;
}
Program: 70037
Project: 70037
Buggy source:
/** 
 */
public MergeSource(VFSContainer parentContainer,String name){
  super(name);
  this.parentContainer=parentContainer;
  this.mergedContainers=new ArrayList();
  this.mergedContainersChildren=new ArrayList();
}

Fixed version (ground truth):
/** 
 */
public MergeSource(VFSContainer parentContainer,String name){
  super(name);
  this.parentContainer=parentContainer;
  this.mergedContainers=new ArrayList<VFSContainer>();
  this.mergedContainersChildren=new ArrayList<VFSContainer>();
}
Program: 70038
Project: 70038
Buggy source:
private boolean isContainerNameTaken(String containerName){
  for (Iterator iter=mergedContainers.iterator(); iter.hasNext(); ) {
    VFSContainer mergedContainer=(VFSContainer)iter.next();
    if (mergedContainer.getName().equals(containerName))     return true;
  }
  return false;
}

Fixed version (ground truth):
private boolean isContainerNameTaken(String containerName){
  for (Iterator<VFSContainer> iter=mergedContainers.iterator(); iter.hasNext(); ) {
    VFSContainer mergedContainer=iter.next();
    if (mergedContainer.getName().equals(containerName))     return true;
  }
  return false;
}
Program: 70040
Project: 70040
Buggy source:
/** 
 * This method takes a VFSContainer and a relative path to a file that exists within this container. The method checks if the given container is a writable container that can be used e.g. by the HTML editor as a base directory where to store some things. If the method detects that this is not the case it works against the relative file path and checks each directory in the path. <br> The result will be an object array that contains the corrected container and the new relative path. If no writable container could be found NULL is returned. <br> Limitations: the method stops at least after 20 iterations returning NULL
 * @param rootDir the container that should be checked
 * @param relFilePath The valid file path within this container
 * @return Object array that contains 1) a writable rootDir and 2) thecorrected relFilePath that mathes to the new rootDir. Can be NULL if no writable root folder could be found.
 */
public static Object[] findWritableRootFolderFor(VFSContainer rootDir,String relFilePath){
  int level=0;
  return findWritableRootFolderForRecursion(rootDir,relFilePath,level);
}

Fixed version (ground truth):
/** 
 * This method takes a VFSContainer and a relative path to a file that exists within this container. The method checks if the given container is a writable container that can be used e.g. by the HTML editor as a base directory where to store some things. If the method detects that this is not the case it works against the relative file path and checks each directory in the path. <br> The result will be an object array that contains the corrected container and the new relative path. If no writable container could be found NULL is returned. <br> Limitations: the method stops at least after 20 iterations returning NULL
 * @param rootDir the container that should be checked
 * @param relFilePath The valid file path within this container
 * @return Object array that contains 1) a writable rootDir and 2) thecorrected relFilePath that mathes to the new rootDir. Can be NULL if no writable root folder could be found.
 */
public static ContainerAndFile findWritableRootFolderFor(VFSContainer rootDir,String relFilePath){
  int level=0;
  return findWritableRootFolderForRecursion(rootDir,relFilePath,level);
}
Program: 70041
Project: 70041
Buggy source:
@Override public String getAction(int row){
  int sortedRow=table.getSortedRow(row);
  ViteroBooking booking=(ViteroBooking)getTable().getTableDataModel().getObject(sortedRow);
  if (viteroManager.canGoBooking(booking)) {
    Object state=getTable().getTableDataModel().getValueAt(sortedRow,ViteroBookingDataModel.Column.sign.ordinal());
    if (Sign.signout.equals(state)) {
      return super.getAction(row);
    }
  }
  return null;
}

Fixed version (ground truth):
@Override public String getAction(int row){
  int sortedRow=table.getSortedRow(row);
  ViteroBooking booking=(ViteroBooking)getTable().getTableDataModel().getObject(sortedRow);
  if (viteroManager.canGoBooking(booking)) {
    if (booking.isAutoSignIn()) {
      Object state=getTable().getTableDataModel().getValueAt(sortedRow,ViteroBookingDataModel.Column.sign.ordinal());
      if (Sign.signout.equals(state)) {
        return super.getAction(row);
      }
    }
 else {
      return super.getAction(row);
    }
  }
  return null;
}
Program: 70042
Project: 70042
Buggy source:
@Override public void renderValue(StringOutput sb,int row,Renderer renderer){
  int sortedRow=table.getSortedRow(row);
  ViteroBooking booking=(ViteroBooking)getTable().getTableDataModel().getObject(sortedRow);
  if (viteroManager.canGoBooking(booking)) {
    Object state=getTable().getTableDataModel().getValueAt(sortedRow,ViteroBookingDataModel.Column.sign.ordinal());
    if (Sign.signout.equals(state)) {
      sb.append(translator.translate(getHeaderKey()));
    }
  }
}

Fixed version (ground truth):
@Override public void renderValue(StringOutput sb,int row,Renderer renderer){
  int sortedRow=table.getSortedRow(row);
  ViteroBooking booking=(ViteroBooking)getTable().getTableDataModel().getObject(sortedRow);
  if (viteroManager.canGoBooking(booking)) {
    if (booking.isAutoSignIn()) {
      Object state=getTable().getTableDataModel().getValueAt(sortedRow,ViteroBookingDataModel.Column.sign.ordinal());
      if (Sign.signout.equals(state)) {
        sb.append(translator.translate(getHeaderKey()));
      }
    }
 else {
      sb.append(translator.translate(getHeaderKey()));
    }
  }
}
Program: 70043
Project: 70043
Buggy source:
@Override protected void initDefaultProperties(){
  String homesRoot=getStringConfigParameter(CONFIG_ROOT,System.getProperty("String_Node_Str") + "String_Node_Str",false);
  if (Settings.isJUnitTest()) {
    FolderConfig.setFolderRoot(homesRoot + "String_Node_Str");
  }
 else {
    FolderConfig.setFolderRoot(homesRoot);
  }
  log.info("String_Node_Str" + FolderConfig.getCanonicalRoot() + "String_Node_Str");
  int maxULMB=getIntConfigParameter(CONFIG_LIMITULMB,100);
  FolderConfig.setLimitULKB(maxULMB * 1024);
  log.info("String_Node_Str" + FolderConfig.getLimitULKB() + "String_Node_Str");
  int quotaMB=getIntConfigParameter(CONFIG_QUOTAMB,100);
  FolderConfig.setDefaultQuotaKB(quotaMB * 1024);
  log.info("String_Node_Str" + FolderConfig.getDefaultQuotaKB() + "String_Node_Str");
  boolean sendDocLinkyOnly=getBooleanConfigParameter(CONFIG_SENDDOCLINKONLY,true);
  FolderConfig.setSendDocumentLinkOnly(sendDocLinkyOnly);
  boolean sendDocToExtern=getBooleanConfigParameter(CONFIG_SENDDOCTOEXTERN,false);
  FolderConfig.setSendDocumentToExtern(sendDocToExtern);
  File fTmp=new File(FolderConfig.getCanonicalTmpDir());
  fTmp.mkdirs();
}

Fixed version (ground truth):
@Override protected void initDefaultProperties(){
  File defaultHome=new File(System.getProperty("String_Node_Str"),"String_Node_Str");
  String homesRoot=getStringConfigParameter(CONFIG_ROOT,defaultHome.getAbsolutePath(),false);
  if (Settings.isJUnitTest()) {
    FolderConfig.setFolderRoot(homesRoot + "String_Node_Str");
  }
 else {
    FolderConfig.setFolderRoot(homesRoot);
  }
  log.info("String_Node_Str" + FolderConfig.getCanonicalRoot() + "String_Node_Str");
  int maxULMB=getIntConfigParameter(CONFIG_LIMITULMB,100);
  FolderConfig.setLimitULKB(maxULMB * 1024);
  log.info("String_Node_Str" + FolderConfig.getLimitULKB() + "String_Node_Str");
  int quotaMB=getIntConfigParameter(CONFIG_QUOTAMB,100);
  FolderConfig.setDefaultQuotaKB(quotaMB * 1024);
  log.info("String_Node_Str" + FolderConfig.getDefaultQuotaKB() + "String_Node_Str");
  boolean sendDocLinkyOnly=getBooleanConfigParameter(CONFIG_SENDDOCLINKONLY,true);
  FolderConfig.setSendDocumentLinkOnly(sendDocLinkyOnly);
  boolean sendDocToExtern=getBooleanConfigParameter(CONFIG_SENDDOCTOEXTERN,false);
  FolderConfig.setSendDocumentToExtern(sendDocToExtern);
  File fTmp=new File(FolderConfig.getCanonicalTmpDir());
  fTmp.mkdirs();
}
Program: 70044
Project: 70044
Buggy source:
public String getAuthor(){
  if (versionFile instanceof MetaTagged) {
    MetaInfo info=((MetaTagged)versionFile).getMetaInfo();
    return info.getAuthor();
  }
  return "String_Node_Str";
}

Fixed version (ground truth):
public String getAuthor(){
  return versions.getAuthor();
}
Program: 70046
Project: 70046
Buggy source:
public CurrentRevision(VFSLeaf versionFile){
  this.versionFile=versionFile;
}

Fixed version (ground truth):
public CurrentRevision(VFSLeaf versionFile,Versions versions){
  this.versionFile=versionFile;
  this.versions=versions;
}
Program: 70047
Project: 70047
Buggy source:
public String getRevisionNr(){
  return ((Versionable)versionFile).getVersions().getRevisionNr();
}

Fixed version (ground truth):
public String getRevisionNr(){
  return versions.getRevisionNr();
}
Program: 70048
Project: 70048
Buggy source:
public String getComment(){
  Versions versions=((Versionable)versionFile).getVersions();
  String comment=versions.getComment();
  if (StringHelper.containsNonWhitespace(comment)) {
    return comment;
  }
 else   if ("String_Node_Str".equals(versions.getRevisionNr())) {
    return translate("String_Node_Str");
  }
  return "String_Node_Str";
}

Fixed version (ground truth):
public String getComment(){
  String comment=versions.getComment();
  if (StringHelper.containsNonWhitespace(comment)) {
    return comment;
  }
 else   if ("String_Node_Str".equals(versions.getRevisionNr())) {
    return translate("String_Node_Str");
  }
  return "String_Node_Str";
}
Program: 70049
Project: 70049
Buggy source:
public String getAuthor(){
  return author;
}

Fixed version (ground truth):
@Override public String getAuthor(){
  return author;
}
Program: 70050
Project: 70050
Buggy source:
public String getCanonicalRoot(){
  return FolderConfig.getCanonicalRoot();
}

Fixed version (ground truth):
public String getCanonicalRoot(){
  if (rootFolder == null) {
    rootFolder=new File(FolderConfig.getCanonicalRoot());
  }
  return rootFolder.getAbsolutePath();
}
Program: 70054
Project: 70054
Buggy source:
@Override public Versions createVersionsFor(VFSLeaf leaf){
  if (!(leaf instanceof Versionable)) {
    return NOT_VERSIONED;
  }
 else   if (isVersionFile(leaf)) {
    return NOT_VERSIONED;
  }
  Versions versions=readVersions(leaf,false);
  return versions;
}

Fixed version (ground truth):
@Override public Versions createVersionsFor(VFSLeaf leaf,boolean force){
  if (!(leaf instanceof Versionable)) {
    return NOT_VERSIONED;
  }
 else   if (isVersionFile(leaf)) {
    return NOT_VERSIONED;
  }
  Versions versions=readVersions(leaf,false);
  return versions;
}
Program: 70055
Project: 70055
Buggy source:
/** 
 * Move a versioned file to the target container
 * @param currentVersion
 * @param target container
 * @return
 */
public abstract boolean move(Versionable currentVersion,VFSContainer container);

Fixed version (ground truth):
/** 
 * Move a versioned file to an other (WebDAV only!!!)
 * @param currentVersion
 * @param oldVersion
 * @return
 */
public abstract boolean move(VFSLeaf currentFile,VFSLeaf targetFile,Identity author);
Program: 70056
Project: 70056
Buggy source:
/** 
 * Get or create the versions datas of this file
 * @param a file
 * @return
 */
public abstract Versions createVersionsFor(VFSLeaf leaf);

Fixed version (ground truth):
/** 
 * Get or create the versions datas of this file
 * @param a file
 * @param force the creation of the file
 * @return
 */
public abstract Versions createVersionsFor(VFSLeaf leaf,boolean force);