Program: 96798
Project: 96798
Buggy source:
@Override public void runOperation(VariableMap variableMap,IProgressMonitor monitor) throws Exception {
  IArtifactType ofArtifactType=variableMap.getArtifactType("String_Node_Str");
  IOseeBranch branch=variableMap.getBranch("String_Node_Str");
  if (branch == null) {
    AWorkbench.popup("String_Node_Str");
    return;
  }
  String keywordgroups=variableMap.getString("String_Node_Str");
  if (!Strings.isValid(keywordgroups)) {
    AWorkbench.popup("String_Node_Str");
    return;
  }
  Collection<AttributeType> attrTypes=variableMap.getAttributeTypes("String_Node_Str");
  HashCollection<Artifact,String> artifactToMatch=new HashCollection<>(100);
  for (  String keywords : keywordgroups.split(System.getProperty("String_Node_Str"))) {
    for (    Artifact art : ArtifactQuery.getArtifactListFromAttributeKeywords(branch,keywords,true,EXCLUDE_DELETED,false)) {
      if (ofArtifactType == null || art.isOfType(ofArtifactType)) {
        artifactToMatch.put(art,keywords);
      }
    }
  }
  XResultData resultData=new XResultData(false);
  resultData.log(String.format("String_Node_Str",getName(),branch));
  resultData.addRaw(AHTML.beginMultiColumnTable(100,1));
  List<String> headerList=new ArrayList<>();
  headerList.addAll(Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"));
  for (  AttributeType attrType : attrTypes) {
    headerList.add(attrType.getName());
  }
  resultData.addRaw(AHTML.addHeaderRowMultiColumnTable(headerList));
  for (  Entry<Artifact,Collection<String>> entry : artifactToMatch.entrySet()) {
    List<String> valueList=new ArrayList<>();
    valueList.addAll(Arrays.asList(entry.getKey().getName(),Collections.toString("String_Node_Str",entry.getValue()),entry.getKey().getGuid(),XResultDataUI.getHyperlink("String_Node_Str",entry.getKey()),entry.getKey().getArtifactTypeName()));
    for (    AttributeType attrType : attrTypes) {
      valueList.add(entry.getKey().getAttributesToString(attrType));
    }
    resultData.addRaw(AHTML.addRowMultiColumnTable(valueList.toArray(new String[valueList.size()]),null));
  }
  resultData.addRaw(AHTML.endMultiColumnTable());
  resultData.log("String_Node_Str" + keywordgroups);
  XResultDataUI.report(resultData,String.format("String_Node_Str",getName(),branch));
}

Fixed version (ground truth):
@Override public void runOperation(VariableMap variableMap,IProgressMonitor monitor) throws Exception {
  IArtifactType ofArtifactType=variableMap.getArtifactType("String_Node_Str");
  BranchId branch=variableMap.getBranch("String_Node_Str");
  if (branch == null) {
    AWorkbench.popup("String_Node_Str");
    return;
  }
  String keywordgroups=variableMap.getString("String_Node_Str");
  if (!Strings.isValid(keywordgroups)) {
    AWorkbench.popup("String_Node_Str");
    return;
  }
  Collection<AttributeType> attrTypes=variableMap.getAttributeTypes("String_Node_Str");
  HashCollection<Artifact,String> artifactToMatch=new HashCollection<>(100);
  for (  String keywords : keywordgroups.split(System.getProperty("String_Node_Str"))) {
    for (    Artifact art : ArtifactQuery.getArtifactListFromAttributeKeywords(branch,keywords,true,EXCLUDE_DELETED,false)) {
      if (ofArtifactType == null || art.isOfType(ofArtifactType)) {
        artifactToMatch.put(art,keywords);
      }
    }
  }
  XResultData resultData=new XResultData(false);
  resultData.log(String.format("String_Node_Str",getName(),branch));
  resultData.addRaw(AHTML.beginMultiColumnTable(100,1));
  List<String> headerList=new ArrayList<>();
  headerList.addAll(Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"));
  for (  AttributeType attrType : attrTypes) {
    headerList.add(attrType.getName());
  }
  resultData.addRaw(AHTML.addHeaderRowMultiColumnTable(headerList));
  for (  Entry<Artifact,Collection<String>> entry : artifactToMatch.entrySet()) {
    List<String> valueList=new ArrayList<>();
    valueList.addAll(Arrays.asList(entry.getKey().getName(),Collections.toString("String_Node_Str",entry.getValue()),entry.getKey().getGuid(),XResultDataUI.getHyperlink("String_Node_Str",entry.getKey()),entry.getKey().getArtifactTypeName()));
    for (    AttributeType attrType : attrTypes) {
      valueList.add(entry.getKey().getAttributesToString(attrType));
    }
    resultData.addRaw(AHTML.addRowMultiColumnTable(valueList.toArray(new String[valueList.size()]),null));
  }
  resultData.addRaw(AHTML.endMultiColumnTable());
  resultData.log("String_Node_Str" + keywordgroups);
  XResultDataUI.report(resultData,String.format("String_Node_Str",getName(),branch));
}