Program: 69516
Project: 69516
Buggy source:
public DirectoryController(UserRequest ureq,WindowControl wControl,File documentsDir,String i18nDescription,String i18nBulkDownload,String zipName){
  super(ureq,wControl);
  this.zipName=zipName;
  this.documentsDir=documentsDir;
  VelocityContainer mainVC=createVelocityContainer("String_Node_Str");
  mainVC.contextPut("String_Node_Str",translate(i18nDescription));
  mainVC.contextPut("String_Node_Str",zipName + "String_Node_Str");
  if (StringHelper.containsNonWhitespace(i18nBulkDownload)) {
    bulkReviewLink=LinkFactory.createCustomLink("String_Node_Str","String_Node_Str",i18nBulkDownload,Link.BUTTON,mainVC,this);
    bulkReviewLink.setIconLeftCSS("String_Node_Str");
  }
  List<String> linkNames=new ArrayList<>();
  File[] documents=documentsDir.listFiles(SystemFileFilter.FILES_ONLY);
  for (  File document : documents) {
    Link link=LinkFactory.createLink("String_Node_Str" + CodeHelper.getRAMUniqueID(),"String_Node_Str",getTranslator(),mainVC,this,Link.NONTRANSLATED);
    link.setCustomDisplayText(StringHelper.escapeHtml(document.getName()));
    String cssClass=CSSHelper.createFiletypeIconCssClassFor(document.getName());
    link.setIconLeftCSS("String_Node_Str" + cssClass);
    link.setUserObject(document);
    link.setTarget("String_Node_Str");
    linkNames.add(link.getComponentName());
  }
  mainVC.contextPut("String_Node_Str",linkNames);
  putInitialPanel(mainVC);
}

Fixed version (ground truth):
public DirectoryController(UserRequest ureq,WindowControl wControl,File documentsDir,VFSContainer documentsContainer,String i18nDescription,String i18nBulkDownload,String zipName){
  super(ureq,wControl);
  this.zipName=zipName;
  this.documentsDir=documentsDir;
  VelocityContainer mainVC=createVelocityContainer("String_Node_Str");
  mainVC.contextPut("String_Node_Str",translate(i18nDescription));
  mainVC.contextPut("String_Node_Str",zipName + "String_Node_Str");
  if (StringHelper.containsNonWhitespace(i18nBulkDownload)) {
    bulkReviewLink=LinkFactory.createCustomLink("String_Node_Str","String_Node_Str",i18nBulkDownload,Link.BUTTON,mainVC,this);
    bulkReviewLink.setIconLeftCSS("String_Node_Str");
  }
  List<DocumentInfos> linkNames=new ArrayList<>();
  File[] documents=documentsDir.listFiles(SystemFileFilter.FILES_ONLY);
  for (  File document : documents) {
    String linkId="String_Node_Str" + CodeHelper.getRAMUniqueID();
    Link link=LinkFactory.createLink(linkId,"String_Node_Str",getTranslator(),mainVC,this,Link.NONTRANSLATED);
    link.setCustomDisplayText(StringHelper.escapeHtml(document.getName()));
    String cssClass=CSSHelper.createFiletypeIconCssClassFor(document.getName());
    link.setIconLeftCSS("String_Node_Str" + cssClass);
    link.setUserObject(document);
    link.setTarget("String_Node_Str");
    String uploadedBy=null;
    if (documentsContainer != null) {
      VFSItem item=documentsContainer.resolve(document.getName());
      if (item instanceof MetaTagged) {
        MetaInfo metaInfo=((MetaTagged)item).getMetaInfo();
        if (metaInfo != null && metaInfo.getAuthorIdentityKey() != null) {
          uploadedBy=userManager.getUserDisplayName(metaInfo.getAuthorIdentityKey());
        }
      }
    }
    linkNames.add(new DocumentInfos(link.getComponentName(),uploadedBy));
  }
  mainVC.contextPut("String_Node_Str",linkNames);
  putInitialPanel(mainVC);
}