Program: 88462
Project: 88462
Buggy source:
@Override public void run(ProgressStatus progressStatus){
  if (progressStatus == null) {
    progressStatus=EmptyProgressStatus.getDefault();
  }
  progressStatus.setDescription("String_Node_Str");
  progressStatus.setIndeterminate(true);
  if (clientElements == null) {
    clientElements=new LinkedList<>();
  }
  Map<String,Pair<Element,ObjectNode>> clientElementMap=clientElements.stream().collect(Collectors.toMap(pair -> Converters.getElementToIdConverter().apply(pair.getKey()),Function.identity()));
  Set<String> processedElementIds=new HashSet<>();
  JsonToken current=null;
  for (  File responseFile : serverElementFiles) {
    try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
      current=(jsonParser.getCurrentToken() == null ? jsonParser.nextToken() : jsonParser.getCurrentToken());
      if (current != JsonToken.START_OBJECT) {
        throw new IOException("String_Node_Str");
      }
      while (current != JsonToken.END_OBJECT) {
        current=jsonParser.nextToken();
        String keyName;
        if (current != null && (keyName=jsonParser.getCurrentName()) != null && keyName.equals("String_Node_Str") && (current=jsonParser.nextToken()) == JsonToken.START_ARRAY) {
          current=jsonParser.nextToken();
          JsonNode value;
          while (current != JsonToken.END_ARRAY) {
            if (current == JsonToken.START_OBJECT) {
              String id;
              ObjectNode currentServerElement=JacksonUtils.parseJsonObject(jsonParser);
              if ((value=currentServerElement.get(MDKConstants.ID_KEY)) != null && value.isTextual() && !processedElementIds.contains(id=value.asText())) {
                processedElementIds.add(id);
                Pair<Element,ObjectNode> currentClientElement=clientElementMap.remove(id);
                if (currentClientElement == null) {
                  addMissingInClientViolation(currentServerElement);
                }
 else {
                  addElementEquivalenceViolation(currentClientElement,currentServerElement);
                }
              }
            }
          }
        }
      }
    }
 catch (    IOException e) {
    }
  }
  if (serverElements == null) {
    serverElements=new LinkedList<>();
  }
  Map<String,ObjectNode> serverElementMap=serverElements.stream().filter(json -> json.has(MDKConstants.ID_KEY) && json.get(MDKConstants.ID_KEY).isTextual()).filter(json -> !processedElementIds.contains(json.get(MDKConstants.ID_KEY).asText())).collect(Collectors.toMap(json -> json.get(MDKConstants.ID_KEY).asText(),Function.identity()));
  LinkedHashSet<String> elementKeySet=new LinkedHashSet<>();
  elementKeySet.addAll(clientElementMap.keySet());
  elementKeySet.addAll(serverElementMap.keySet());
  progressStatus.setDescription("String_Node_Str" + elementKeySet.size() + "String_Node_Str"+ (elementKeySet.size() != 1 ? "String_Node_Str" : "String_Node_Str"));
  progressStatus.setIndeterminate(false);
  progressStatus.setMax(elementKeySet.size());
  progressStatus.setCurrent(0);
  for (  String id : elementKeySet) {
    Pair<Element,ObjectNode> clientElement=clientElementMap.get(id);
    ObjectNode serverElement=serverElementMap.get(id);
    if ((clientElement == null || clientElement.getKey() == null) && serverElement == null) {
      continue;
    }
 else     if (clientElement == null) {
      addMissingInClientViolation(serverElement);
    }
 else     if (serverElement == null) {
      addMissingOnMmsViolation(clientElement);
    }
 else {
      addElementEquivalenceViolation(clientElement,serverElement);
    }
    progressStatus.increase();
  }
  Application.getInstance().getGUILog().log("String_Node_Str" + validationSuite.getName() + "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(missingInClientCount) + "String_Node_Str"+ (missingInClientCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(missingOnMmsCount) + "String_Node_Str"+ (missingOnMmsCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(notEquivalentCount) + "String_Node_Str"+ (notEquivalentCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + validationSuite.getName() + "String_Node_Str");
}

Fixed version (ground truth):
@Override public void run(ProgressStatus progressStatus){
  if (progressStatus == null) {
    progressStatus=EmptyProgressStatus.getDefault();
  }
  progressStatus.setDescription("String_Node_Str");
  progressStatus.setIndeterminate(true);
  if (clientElements == null) {
    clientElements=new LinkedList<>();
  }
  Map<String,Pair<Element,ObjectNode>> clientElementMap=clientElements.stream().collect(Collectors.toMap(pair -> Converters.getElementToIdConverter().apply(pair.getKey()),Function.identity(),(s,a) -> a));
  Set<String> processedElementIds=new HashSet<>();
  JsonToken current=null;
  for (  File responseFile : serverElementFiles) {
    try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
      current=(jsonParser.getCurrentToken() == null ? jsonParser.nextToken() : jsonParser.getCurrentToken());
      if (current != JsonToken.START_OBJECT) {
        throw new IOException("String_Node_Str");
      }
      while (current != JsonToken.END_OBJECT) {
        current=jsonParser.nextToken();
        String keyName;
        if (current != null && (keyName=jsonParser.getCurrentName()) != null && keyName.equals("String_Node_Str") && (current=jsonParser.nextToken()) == JsonToken.START_ARRAY) {
          current=jsonParser.nextToken();
          JsonNode value;
          while (current != JsonToken.END_ARRAY) {
            if (current == JsonToken.START_OBJECT) {
              String id;
              ObjectNode currentServerElement=JacksonUtils.parseJsonObject(jsonParser);
              if ((value=currentServerElement.get(MDKConstants.ID_KEY)) != null && value.isTextual() && !processedElementIds.contains(id=value.asText())) {
                processedElementIds.add(id);
                Pair<Element,ObjectNode> currentClientElement=clientElementMap.remove(id);
                if (currentClientElement == null) {
                  addMissingInClientViolation(currentServerElement);
                }
 else {
                  addElementEquivalenceViolation(currentClientElement,currentServerElement);
                }
              }
            }
          }
        }
      }
    }
 catch (    IOException e) {
    }
  }
  if (serverElements == null) {
    serverElements=new LinkedList<>();
  }
  Map<String,ObjectNode> serverElementMap=serverElements.stream().filter(json -> json.has(MDKConstants.ID_KEY) && json.get(MDKConstants.ID_KEY).isTextual()).filter(json -> !processedElementIds.contains(json.get(MDKConstants.ID_KEY).asText())).collect(Collectors.toMap(json -> json.get(MDKConstants.ID_KEY).asText(),Function.identity()));
  LinkedHashSet<String> elementKeySet=new LinkedHashSet<>();
  elementKeySet.addAll(clientElementMap.keySet());
  elementKeySet.addAll(serverElementMap.keySet());
  progressStatus.setDescription("String_Node_Str" + elementKeySet.size() + "String_Node_Str"+ (elementKeySet.size() != 1 ? "String_Node_Str" : "String_Node_Str"));
  progressStatus.setIndeterminate(false);
  progressStatus.setMax(elementKeySet.size());
  progressStatus.setCurrent(0);
  for (  String id : elementKeySet) {
    Pair<Element,ObjectNode> clientElement=clientElementMap.get(id);
    ObjectNode serverElement=serverElementMap.get(id);
    if ((clientElement == null || clientElement.getKey() == null) && serverElement == null) {
      continue;
    }
 else     if (clientElement == null) {
      addMissingInClientViolation(serverElement);
    }
 else     if (serverElement == null) {
      addMissingOnMmsViolation(clientElement);
    }
 else {
      addElementEquivalenceViolation(clientElement,serverElement);
    }
    progressStatus.increase();
  }
  Application.getInstance().getGUILog().log("String_Node_Str" + validationSuite.getName() + "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(missingInClientCount) + "String_Node_Str"+ (missingInClientCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(missingOnMmsCount) + "String_Node_Str"+ (missingOnMmsCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + NumberFormat.getInstance().format(notEquivalentCount) + "String_Node_Str"+ (notEquivalentCount != 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str");
  Application.getInstance().getGUILog().log("String_Node_Str" + validationSuite.getName() + "String_Node_Str");
}