nus-yam/ex-repair huggingface dataset:
Program: 88500
Project: 88500
Buggy source:
/** 
 * Sends a DELETE request to MMS for the indicated elements.
 * @param elementsToDelete Collection of elements you want to directly delete on the MMS
 * @throws IllegalStateException
 * @throws ServerException
 */
public static ObjectNode deleteMmsElements(Collection<Element> elementsToDelete,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementsToDelete,MMSUtils.JsonBlobType.ELEMENT_ID);
  return JacksonUtils.parseJsonObject(MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.DELETE,requestUri,sendData,ContentType.APPLICATION_JSON)));
}

Fixed version (ground truth):
/** 
 * Sends a DELETE request to MMS for the indicated elements.
 * @param elementsToDelete Collection of elements you want to directly delete on the MMS
 * @throws IllegalStateException
 * @throws ServerException
 */
public static ObjectNode deleteMmsElements(Collection<Element> elementsToDelete,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementsToDelete,MMSUtils.JsonBlobType.ELEMENT_ID);
  File responseFile=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.DELETE,requestUri,sendData,ContentType.APPLICATION_JSON));
  try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    return JacksonUtils.parseJsonObject(jsonParser);
  }
 }
Program: 88501
Project: 88501
Buggy source:
public static Collection<Element> getElementsById(Collection<String> elementIds,Project project,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  final ObjectNode requests=JacksonUtils.getObjectMapper().createObjectNode();
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementIds,MMSUtils.JsonBlobType.ELEMENT_ID);
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  JsonParser jsonParser;
  if (progressStatus != null) {
    jsonParser=MMSUtils.sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
 else {
    jsonParser=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON));
  }
  LinkedList<Element> elementsList=new LinkedList<>();
  for (  ObjectNode elementJson : JacksonUtils.parseJsonResponseToObjectList(jsonParser,null)) {
    JsonNode value;
    if ((value=elementJson.get(MDKConstants.ID_KEY)) != null && value.isTextual()) {
      elementsList.add(Converters.getIdToElementConverter().apply(value.asText(),project));
    }
  }
  return elementsList;
}

Fixed version (ground truth):
public static Collection<Element> getElementsById(Collection<String> elementIds,Project project,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  final ObjectNode requests=JacksonUtils.getObjectMapper().createObjectNode();
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementIds,MMSUtils.JsonBlobType.ELEMENT_ID);
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  File responseFile;
  if (progressStatus != null) {
    responseFile=MMSUtils.sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
 else {
    responseFile=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON));
  }
  LinkedList<Element> elementsList=new LinkedList<>();
  try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    for (    ObjectNode elementJson : JacksonUtils.parseJsonResponseToObjectList(jsonParser,null)) {
      JsonNode value;
      if ((value=elementJson.get(MDKConstants.ID_KEY)) != null && value.isTextual()) {
        elementsList.add(Converters.getIdToElementConverter().apply(value.asText(),project));
      }
    }
  }
   return elementsList;
}
Program: 88503
Project: 88503
Buggy source:
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param depth          depth to recurse through child elements. takes priority over recurse field
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static JsonParser getElementsRecursively(Project project,Collection<String> elementIds,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  URIBuilder requestUri=getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  if (depth == -1 || depth > 0) {
    requestUri.setParameter("String_Node_Str",java.lang.Integer.toString(depth));
  }
  File sendData=createEntityFile(MMSUtils.class,ContentType.APPLICATION_JSON,elementIds,JsonBlobType.ELEMENT_ID);
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  if (progressStatus != null) {
    return sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
  return sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON));
}

Fixed version (ground truth):
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param depth          depth to recurse through child elements. takes priority over recurse field
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static File getElementsRecursively(Project project,Collection<String> elementIds,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  URIBuilder requestUri=getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  if (depth == -1 || depth > 0) {
    requestUri.setParameter("String_Node_Str",java.lang.Integer.toString(depth));
  }
  File sendData=createEntityFile(MMSUtils.class,ContentType.APPLICATION_JSON,elementIds,JsonBlobType.ELEMENT_ID);
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  if (progressStatus != null) {
    return sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
  return sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON));
}
Program: 88505
Project: 88505
Buggy source:
public static String getMmsOrg(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  JsonParser responseParser=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
  JsonNode arrayNode;
  if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
    JsonNode value;
    for (    JsonNode projectNode : arrayNode) {
      if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.ORG_ID_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
        return value.asText();
      }
    }
  }
  return null;
}

Fixed version (ground truth):
public static String getMmsOrg(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  File responseFile=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode arrayNode;
    if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
      JsonNode value;
      for (      JsonNode projectNode : arrayNode) {
        if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.ORG_ID_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
          return value.asText();
        }
      }
    }
  }
   return null;
}
Program: 88506
Project: 88506
Buggy source:
public static JsonParser getElementRecursively(Project project,String elementId,int depth,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  return getElementsRecursively(project,elementIds,depth,progressStatus);
}

Fixed version (ground truth):
public static File getElementRecursively(Project project,String elementId,int depth,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  return getElementsRecursively(project,elementIds,depth,progressStatus);
}
Program: 88507
Project: 88507
Buggy source:
public static ObjectNode getElement(Project project,String elementId,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  JsonParser responseParser=getElementsRecursively(project,elementIds,0,progressStatus);
  ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
  JsonNode value;
  if (((value=response.get("String_Node_Str")) != null) && value.isArray() && (value=((ArrayNode)value).remove(1)) != null && (value instanceof ObjectNode)) {
    return (ObjectNode)value;
  }
  return response;
}

Fixed version (ground truth):
public static ObjectNode getElement(Project project,String elementId,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  File responseFile=getElementsRecursively(project,elementIds,0,progressStatus);
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode value;
    if (((value=response.get("String_Node_Str")) != null) && value.isArray() && (value=((ArrayNode)value).remove(1)) != null && (value instanceof ObjectNode)) {
      return (ObjectNode)value;
    }
  }
   return null;
}
Program: 88508
Project: 88508
Buggy source:
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static JsonParser getElements(Project project,Collection<String> elementIds,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  return getElementsRecursively(project,elementIds,0,progressStatus);
}

Fixed version (ground truth):
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static File getElements(Project project,Collection<String> elementIds,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  return getElementsRecursively(project,elementIds,0,progressStatus);
}
Program: 88510
Project: 88510
Buggy source:
public static String getUri(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  ObjectNode response=JacksonUtils.parseJsonObject(sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder)));
  JsonNode arrayNode;
  if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
    JsonNode value;
    for (    JsonNode projectNode : arrayNode) {
      if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.TWC_URI_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
        return value.asText();
      }
    }
  }
  return null;
}

Fixed version (ground truth):
public static String getUri(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  File responseFile=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode arrayNode;
    if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
      JsonNode value;
      for (      JsonNode projectNode : arrayNode) {
        if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.TWC_URI_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
          return value.asText();
        }
      }
    }
  }
   return null;
}
Program: 88511
Project: 88511
Buggy source:
public void commitAction(){
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsUri(project);
  if (requestUri == null) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    return;
  }
  Collection<ObjectNode> refsNodes=new LinkedList<>();
  ObjectNode branchNode=BranchValidator.getRefObjectNode(project,branchInfo,updateBranch);
  refsNodes.add(branchNode);
  JsonParser response;
  try {
    File sendFile=MMSUtils.createEntityFile(this.getClass(),ContentType.APPLICATION_JSON,refsNodes,MMSUtils.JsonBlobType.REF);
    HttpRequestBase request=MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendFile,ContentType.APPLICATION_JSON);
    response=MMSUtils.sendMMSRequest(project,request);
  }
 catch (  IOException|URISyntaxException|ServerException e) {
    Application.getInstance().getGUILog().log("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  if (shouldCommitModel) {
    RunnableWithProgress temp=new ManualSyncActionRunner<>(CommitClientElementAction.class,Collections.singletonList(project.getPrimaryModel()),project,-1);
    ProgressStatusRunner.runWithProgressStatus(temp,"String_Node_Str",true,0);
  }
}

Fixed version (ground truth):
public void commitAction(){
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsUri(project);
  if (requestUri == null) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    return;
  }
  Collection<ObjectNode> refsNodes=new LinkedList<>();
  ObjectNode branchNode=BranchValidator.getRefObjectNode(project,branchInfo,updateBranch);
  refsNodes.add(branchNode);
  File responseFile;
  try {
    File sendFile=MMSUtils.createEntityFile(this.getClass(),ContentType.APPLICATION_JSON,refsNodes,MMSUtils.JsonBlobType.REF);
    HttpRequestBase request=MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendFile,ContentType.APPLICATION_JSON);
    responseFile=MMSUtils.sendMMSRequest(project,request);
  }
 catch (  IOException|URISyntaxException|ServerException e) {
    Application.getInstance().getGUILog().log("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  if (shouldCommitModel) {
    RunnableWithProgress temp=new ManualSyncActionRunner<>(CommitClientElementAction.class,Collections.singletonList(project.getPrimaryModel()),project,-1);
    ProgressStatusRunner.runWithProgressStatus(temp,"String_Node_Str",true,0);
  }
}
Program: 88512
Project: 88512
Buggy source:
/** 
 * Sends a POST request to MMS with the element JSON, creating or updating the element as appropriate.
 * @param elementsToPost Collection of elements you want to directly post on the MMS
 * @throws IllegalStateException
 */
public static ObjectNode postMmsElements(Collection<Element> elementsToPost,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  LinkedList<ObjectNode> elementJson=new LinkedList<>();
  for (  Element target : elementsToPost) {
    ObjectNode elemJson=Converters.getElementToJsonConverter().apply(target,project);
    elementJson.add(elemJson);
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementJson,MMSUtils.JsonBlobType.ELEMENT_JSON);
  return JacksonUtils.parseJsonObject(MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendData,ContentType.APPLICATION_JSON)));
}

Fixed version (ground truth):
/** 
 * Sends a POST request to MMS with the element JSON, creating or updating the element as appropriate.
 * @param elementsToPost Collection of elements you want to directly post on the MMS
 * @throws IllegalStateException
 */
public static ObjectNode postMmsElements(Collection<Element> elementsToPost,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  LinkedList<ObjectNode> elementJson=new LinkedList<>();
  for (  Element target : elementsToPost) {
    ObjectNode elemJson=Converters.getElementToJsonConverter().apply(target,project);
    elementJson.add(elemJson);
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementJson,MMSUtils.JsonBlobType.ELEMENT_JSON);
  File responseFile=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendData,ContentType.APPLICATION_JSON));
  try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    return JacksonUtils.parseJsonObject(jsonParser);
  }
 }
Program: 88513
Project: 88513
Buggy source:
/** 
 * Sends a DELETE request to MMS for the indicated elements.
 * @param elementsToDelete Collection of elements you want to directly delete on the MMS
 * @throws IllegalStateException
 * @throws ServerException
 */
public static ObjectNode deleteMmsElements(Collection<Element> elementsToDelete,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementsToDelete,MMSUtils.JsonBlobType.ELEMENT_ID);
  return JacksonUtils.parseJsonObject(MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.DELETE,requestUri,sendData,ContentType.APPLICATION_JSON)));
}

Fixed version (ground truth):
/** 
 * Sends a DELETE request to MMS for the indicated elements.
 * @param elementsToDelete Collection of elements you want to directly delete on the MMS
 * @throws IllegalStateException
 * @throws ServerException
 */
public static ObjectNode deleteMmsElements(Collection<Element> elementsToDelete,Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementsToDelete,MMSUtils.JsonBlobType.ELEMENT_ID);
  File responseFile=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.DELETE,requestUri,sendData,ContentType.APPLICATION_JSON));
  try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    return JacksonUtils.parseJsonObject(jsonParser);
  }
 }
Program: 88514
Project: 88514
Buggy source:
public static Collection<Element> getElementsById(Collection<String> elementIds,Project project,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  final ObjectNode requests=JacksonUtils.getObjectMapper().createObjectNode();
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementIds,MMSUtils.JsonBlobType.ELEMENT_ID);
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  JsonParser jsonParser;
  if (progressStatus != null) {
    jsonParser=MMSUtils.sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
 else {
    jsonParser=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON));
  }
  LinkedList<Element> elementsList=new LinkedList<>();
  for (  ObjectNode elementJson : JacksonUtils.parseJsonResponseToObjectList(jsonParser,null)) {
    JsonNode value;
    if ((value=elementJson.get(MDKConstants.ID_KEY)) != null && value.isTextual()) {
      elementsList.add(Converters.getIdToElementConverter().apply(value.asText(),project));
    }
  }
  return elementsList;
}

Fixed version (ground truth):
public static Collection<Element> getElementsById(Collection<String> elementIds,Project project,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  final ObjectNode requests=JacksonUtils.getObjectMapper().createObjectNode();
  File sendData=MMSUtils.createEntityFile(MDKHelper.class,ContentType.APPLICATION_JSON,elementIds,MMSUtils.JsonBlobType.ELEMENT_ID);
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  File responseFile;
  if (progressStatus != null) {
    responseFile=MMSUtils.sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
 else {
    responseFile=MMSUtils.sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.GET,requestUri,sendData,ContentType.APPLICATION_JSON));
  }
  LinkedList<Element> elementsList=new LinkedList<>();
  try (JsonParser jsonParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    for (    ObjectNode elementJson : JacksonUtils.parseJsonResponseToObjectList(jsonParser,null)) {
      JsonNode value;
      if ((value=elementJson.get(MDKConstants.ID_KEY)) != null && value.isTextual()) {
        elementsList.add(Converters.getIdToElementConverter().apply(value.asText(),project));
      }
    }
  }
   return elementsList;
}
Program: 88516
Project: 88516
Buggy source:
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param depth          depth to recurse through child elements. takes priority over recurse field
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static JsonParser getElementsRecursively(Project project,Collection<String> elementIds,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  URIBuilder requestUri=getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  if (depth == -1 || depth > 0) {
    requestUri.setParameter("String_Node_Str",java.lang.Integer.toString(depth));
  }
  File sendData=createEntityFile(MMSUtils.class,ContentType.APPLICATION_JSON,elementIds,JsonBlobType.ELEMENT_ID);
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  if (progressStatus != null) {
    return sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
  return sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON));
}

Fixed version (ground truth):
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param depth          depth to recurse through child elements. takes priority over recurse field
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static File getElementsRecursively(Project project,Collection<String> elementIds,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  if (elementIds == null || elementIds.isEmpty()) {
    return null;
  }
  URIBuilder requestUri=getServiceProjectsRefsElementsUri(project);
  if (requestUri == null) {
    return null;
  }
  if (depth == -1 || depth > 0) {
    requestUri.setParameter("String_Node_Str",java.lang.Integer.toString(depth));
  }
  File sendData=createEntityFile(MMSUtils.class,ContentType.APPLICATION_JSON,elementIds,JsonBlobType.ELEMENT_ID);
  Utils.guilog("String_Node_Str" + elementIds.size() + "String_Node_Str");
  if (progressStatus != null) {
    return sendCancellableMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON),progressStatus);
  }
  return sendMMSRequest(project,MMSUtils.buildRequest(MMSUtils.HttpRequestType.PUT,requestUri,sendData,ContentType.APPLICATION_JSON));
}
Program: 88518
Project: 88518
Buggy source:
public static String getMmsOrg(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  JsonParser responseParser=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
  JsonNode arrayNode;
  if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
    JsonNode value;
    for (    JsonNode projectNode : arrayNode) {
      if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.ORG_ID_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
        return value.asText();
      }
    }
  }
  return null;
}

Fixed version (ground truth):
public static String getMmsOrg(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  File responseFile=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode arrayNode;
    if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
      JsonNode value;
      for (      JsonNode projectNode : arrayNode) {
        if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.ORG_ID_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
          return value.asText();
        }
      }
    }
  }
   return null;
}
Program: 88519
Project: 88519
Buggy source:
public static JsonParser getElementRecursively(Project project,String elementId,int depth,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  return getElementsRecursively(project,elementIds,depth,progressStatus);
}

Fixed version (ground truth):
public static File getElementRecursively(Project project,String elementId,int depth,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  return getElementsRecursively(project,elementIds,depth,progressStatus);
}
Program: 88520
Project: 88520
Buggy source:
public static ObjectNode getElement(Project project,String elementId,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  JsonParser responseParser=getElementsRecursively(project,elementIds,0,progressStatus);
  ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
  JsonNode value;
  if (((value=response.get("String_Node_Str")) != null) && value.isArray() && (value=((ArrayNode)value).remove(1)) != null && (value instanceof ObjectNode)) {
    return (ObjectNode)value;
  }
  return response;
}

Fixed version (ground truth):
public static ObjectNode getElement(Project project,String elementId,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  Collection<String> elementIds=new ArrayList<>(1);
  elementIds.add(elementId);
  File responseFile=getElementsRecursively(project,elementIds,0,progressStatus);
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode value;
    if (((value=response.get("String_Node_Str")) != null) && value.isArray() && (value=((ArrayNode)value).remove(1)) != null && (value instanceof ObjectNode)) {
      return (ObjectNode)value;
    }
  }
   return null;
}
Program: 88521
Project: 88521
Buggy source:
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static JsonParser getElements(Project project,Collection<String> elementIds,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  return getElementsRecursively(project,elementIds,0,progressStatus);
}

Fixed version (ground truth):
/** 
 * @param elementIds     collection of elements to get mms data for
 * @param project        project to check
 * @param progressStatus progress status object, can be null
 * @return object node response
 * @throws ServerException
 * @throws IOException
 * @throws URISyntaxException
 */
public static File getElements(Project project,Collection<String> elementIds,ProgressStatus progressStatus) throws IOException, ServerException, URISyntaxException {
  return getElementsRecursively(project,elementIds,0,progressStatus);
}
Program: 88523
Project: 88523
Buggy source:
public static String getUri(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  ObjectNode response=JacksonUtils.parseJsonObject(sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder)));
  JsonNode arrayNode;
  if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
    JsonNode value;
    for (    JsonNode projectNode : arrayNode) {
      if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.TWC_URI_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
        return value.asText();
      }
    }
  }
  return null;
}

Fixed version (ground truth):
public static String getUri(Project project) throws IOException, URISyntaxException, ServerException {
  URIBuilder uriBuilder=getServiceProjectsUri(project);
  File responseFile=sendMMSRequest(project,buildRequest(HttpRequestType.GET,uriBuilder));
  try (JsonParser responseParser=JacksonUtils.getJsonFactory().createParser(responseFile)){
    ObjectNode response=JacksonUtils.parseJsonObject(responseParser);
    JsonNode arrayNode;
    if (((arrayNode=response.get("String_Node_Str")) != null) && arrayNode.isArray()) {
      JsonNode value;
      for (      JsonNode projectNode : arrayNode) {
        if (((value=projectNode.get(MDKConstants.ID_KEY)) != null) && value.isTextual() && value.asText().equals(Converters.getIProjectToIdConverter().apply(project.getPrimaryProject()))&& ((value=projectNode.get(MDKConstants.TWC_URI_KEY)) != null)&& value.isTextual()&& !value.asText().isEmpty()) {
          return value.asText();
        }
      }
    }
  }
   return null;
}
Program: 88524
Project: 88524
Buggy source:
public void commitAction(){
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsUri(project);
  if (requestUri == null) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    return;
  }
  Collection<ObjectNode> refsNodes=new LinkedList<>();
  ObjectNode branchNode=BranchValidator.getRefObjectNode(project,branchInfo,updateBranch);
  refsNodes.add(branchNode);
  JsonParser response;
  try {
    File sendFile=MMSUtils.createEntityFile(this.getClass(),ContentType.APPLICATION_JSON,refsNodes,MMSUtils.JsonBlobType.REF);
    HttpRequestBase request=MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendFile,ContentType.APPLICATION_JSON);
    response=MMSUtils.sendMMSRequest(project,request);
  }
 catch (  IOException|URISyntaxException|ServerException e) {
    Application.getInstance().getGUILog().log("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  if (shouldCommitModel) {
    RunnableWithProgress temp=new ManualSyncActionRunner<>(CommitClientElementAction.class,Collections.singletonList(project.getPrimaryModel()),project,-1);
    ProgressStatusRunner.runWithProgressStatus(temp,"String_Node_Str",true,0);
  }
}

Fixed version (ground truth):
public void commitAction(){
  URIBuilder requestUri=MMSUtils.getServiceProjectsRefsUri(project);
  if (requestUri == null) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    return;
  }
  Collection<ObjectNode> refsNodes=new LinkedList<>();
  ObjectNode branchNode=BranchValidator.getRefObjectNode(project,branchInfo,updateBranch);
  refsNodes.add(branchNode);
  File responseFile;
  try {
    File sendFile=MMSUtils.createEntityFile(this.getClass(),ContentType.APPLICATION_JSON,refsNodes,MMSUtils.JsonBlobType.REF);
    HttpRequestBase request=MMSUtils.buildRequest(MMSUtils.HttpRequestType.POST,requestUri,sendFile,ContentType.APPLICATION_JSON);
    responseFile=MMSUtils.sendMMSRequest(project,request);
  }
 catch (  IOException|URISyntaxException|ServerException e) {
    Application.getInstance().getGUILog().log("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  if (shouldCommitModel) {
    RunnableWithProgress temp=new ManualSyncActionRunner<>(CommitClientElementAction.class,Collections.singletonList(project.getPrimaryModel()),project,-1);
    ProgressStatusRunner.runWithProgressStatus(temp,"String_Node_Str",true,0);
  }
}
Program: 88526
Project: 88526
Buggy source:
/** 
 * Ingests JSON data generated from MMS server and populates JNDI members
 * @return URL string of connector
 */
protected static String ingestJson(ObjectNode jsonInput){
  if (jsonInput == null) {
    return null;
  }
  ArrayNode conns=null;
  JsonNode valueNode;
  if ((valueNode=jsonInput.get("String_Node_Str")) != null && valueNode.isArray()) {
    conns=(ArrayNode)valueNode;
  }
  ObjectNode json=null;
  if (conns != null) {
    for (int ii=0; ii < conns.size(); ii++) {
      json=(ObjectNode)conns.get(ii);
      if (json.get("String_Node_Str").equals("String_Node_Str")) {
        break;
      }
    }
  }
 else {
    json=jsonInput;
  }
  String result=null;
  if (json != null) {
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      result=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_CONN_FACTORY=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_CTX_FACTORY=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_PASSWORD=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_USERNAME=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_TOPIC=valueNode.asText();
    }
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Ingests JSON data generated from MMS server and populates JNDI members
 * @return URL string of connector
 */
protected static String ingestJson(ObjectNode jsonInput){
  if (jsonInput == null) {
    return null;
  }
  ArrayNode conns=null;
  JsonNode valueNode;
  if ((valueNode=jsonInput.get("String_Node_Str")) != null && valueNode.isArray()) {
    conns=(ArrayNode)valueNode;
  }
  ObjectNode json=null;
  if (conns != null) {
    for (int ii=0; ii < conns.size(); ii++) {
      json=(ObjectNode)conns.get(ii);
      JsonNode value;
      if ((value=json.get("String_Node_Str")) != null && value.isTextual() && value.asText().equals("String_Node_Str")) {
        break;
      }
    }
  }
 else {
    json=jsonInput;
  }
  String result=null;
  if (json != null) {
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      result=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_CONN_FACTORY=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_CTX_FACTORY=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_PASSWORD=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_USERNAME=valueNode.asText();
    }
    if ((valueNode=json.get("String_Node_Str")) != null && valueNode.isTextual()) {
      JMS_TOPIC=valueNode.asText();
    }
  }
  return result;
}
Program: 88527
Project: 88527
Buggy source:
public ElementValidator(Collection<Pair<Element,ObjectNode>> clientElements,Collection<ObjectNode> serverElements,Project project){
  this.clientElements=clientElements;
  this.serverElements=serverElements;
  this.serverElementFiles=new LinkedList<>();
  this.project=project;
}

Fixed version (ground truth):
public ElementValidator(Collection<Pair<Element,ObjectNode>> clientElements,Collection<ObjectNode> serverElements,Project project){
  this.clientElements=clientElements;
  this.serverElements=serverElements;
  this.serverElementFiles=Collections.emptyList();
  this.project=project;
}
Program: 88529
Project: 88529
Buggy source:
/** 
 * Executes "Generate View(s)" MDK element action on the selected element
 * @param doc     Document element
 * @param recurse Select true to generate all views under this element, false togenerate only the view for the selected element
 */
public static void generateViews(Element doc,Boolean recurse){
  List<Element> documents=new ArrayList<>(1);
  documents.add(doc);
  GenerateViewPresentationAction gvpa=new GenerateViewPresentationAction(documents,recurse);
  validationWindow=new MDKValidationWindow(gvpa.updateAction());
}

Fixed version (ground truth):
/** 
 * Executes "Generate View(s)" MDK element action on the selected element
 * @param doc     Document element
 * @param recurse Select true to generate all views under this element, false togenerate only the view for the selected element
 */
public static void generateViews(Element doc,Boolean recurse){
  GenerateViewPresentationAction gvpa=new GenerateViewPresentationAction(Collections.singleton(doc),recurse);
  validationWindow=new MDKValidationWindow(gvpa.updateAction());
}
Program: 88531
Project: 88531
Buggy source:
private synchronized Changelog.Change<Element> convert(ObjectNode objectNode,Project project,Boolean strict) throws ImportException, ReadOnlyElementException {
  UMLFactory.eINSTANCE.setRepository(project.getRepository());
  project.getCounter().setCanResetIDForObject(true);
  JsonNode jsonNode=objectNode.get(MDKConstants.ID_KEY);
  Element element=jsonNode != null && jsonNode.isTextual() ? getIdToElementConverter().apply(jsonNode.asText(),project) : null;
  Changelog.ChangeType changeType=element != null && !project.isDisposed(element) ? Changelog.ChangeType.UPDATED : Changelog.ChangeType.CREATED;
  try {
    for (    PreProcessor preProcessor : getPreProcessors()) {
      element=preProcessor.getFunction().apply(objectNode,project,strict,element);
      if (element == null) {
        return null;
      }
    }
    for (    EStructuralFeature eStructuralFeature : element.eClass().getEAllStructuralFeatures()) {
      final Element finalElement=element;
      ImportFunction function=getEStructuralFeatureOverrides().stream().filter(override -> override.getPredicate().test(objectNode,eStructuralFeature,project,strict,finalElement)).map(EStructuralFeatureOverride::getFunction).findAny().orElse(DEFAULT_E_STRUCTURAL_FEATURE_FUNCTION);
      element=function.apply(objectNode,eStructuralFeature,project,strict,element);
      if (element == null) {
        return null;
      }
    }
  }
 catch (  RuntimeException e) {
    throw new ImportException(element,jsonNode,e.getMessage(),e);
  }
  return new Changelog.Change<>(element,changeType);
}

Fixed version (ground truth):
private synchronized Changelog.Change<Element> convert(ObjectNode objectNode,Project project,Boolean strict) throws ImportException, ReadOnlyElementException {
  JsonNode jsonNode=objectNode.get(MDKConstants.ID_KEY);
  Element element=jsonNode != null && jsonNode.isTextual() ? getIdToElementConverter().apply(jsonNode.asText(),project) : null;
  Changelog.ChangeType changeType=element != null && !project.isDisposed(element) ? Changelog.ChangeType.UPDATED : Changelog.ChangeType.CREATED;
  try {
    for (    PreProcessor preProcessor : getPreProcessors()) {
      element=preProcessor.getFunction().apply(objectNode,project,strict,element);
      if (element == null) {
        return null;
      }
    }
    if (element.eClass() == null) {
      return null;
    }
    for (    EStructuralFeature eStructuralFeature : element.eClass().getEAllStructuralFeatures()) {
      final Element finalElement=element;
      ImportFunction function=getEStructuralFeatureOverrides().stream().filter(override -> override.getPredicate().test(objectNode,eStructuralFeature,project,strict,finalElement)).map(EStructuralFeatureOverride::getFunction).findAny().orElse(DEFAULT_E_STRUCTURAL_FEATURE_FUNCTION);
      element=function.apply(objectNode,eStructuralFeature,project,strict,element);
      if (element == null) {
        return null;
      }
    }
  }
 catch (  RuntimeException e) {
    throw new ImportException(element,jsonNode,e.getMessage(),e);
  }
  return new Changelog.Change<>(element,changeType);
}
Program: 88535
Project: 88535
Buggy source:
@Override public void execute(Collection<Annotation> annotations){
  List<ObjectNode> elementsToUpdate=new LinkedList<>();
  List<String> elementsToDelete=new LinkedList<>();
  for (  Annotation annotation : annotations) {
    for (    NMAction action : annotation.getActions()) {
      if (action instanceof CommitClientElementAction) {
        ObjectNode elementObjectNode=((CommitClientElementAction)action).getElementObjectNode();
        if (elementObjectNode != null) {
          elementsToUpdate.add(elementObjectNode);
        }
 else {
          elementsToDelete.add(((CommitClientElementAction)action).getElementID());
        }
        break;
      }
    }
  }
  try {
    CommitClientElementAction.request(elementsToUpdate,elementsToDelete,project);
  }
 catch (  JsonProcessingException e) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    e.printStackTrace();
  }
}

Fixed version (ground truth):
@Override public void execute(Collection<Annotation> annotations){
  List<ObjectNode> elementsToUpdate=new LinkedList<>();
  List<String> elementsToDelete=new LinkedList<>();
  for (  Annotation annotation : annotations) {
    for (    NMAction action : annotation.getActions()) {
      if (action instanceof CommitClientElementAction) {
        ObjectNode elementObjectNode=((CommitClientElementAction)action).getElementObjectNode();
        if (elementObjectNode != null) {
          elementsToUpdate.add(elementObjectNode);
        }
 else         if (elementID.startsWith(MDKConstants.HOLDING_BIN_ID_PREFIX)) {
          Application.getInstance().getGUILog().log("String_Node_Str");
        }
 else {
          elementsToDelete.add(((CommitClientElementAction)action).getElementID());
        }
        break;
      }
    }
  }
  try {
    CommitClientElementAction.request(elementsToUpdate,elementsToDelete,project);
  }
 catch (  JsonProcessingException e) {
    Application.getInstance().getGUILog().log("String_Node_Str");
    e.printStackTrace();
  }
}
Program: 88537
Project: 88537
Buggy source:
private static JsonParser collectServerHoldingBinElementsRecursively(Project project,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  String holdingBinId="String_Node_Str" + Converters.getIProjectToIdConverter().apply(project.getPrimaryProject());
  return MMSUtils.getElementRecursively(project,holdingBinId,depth,progressStatus);
}

Fixed version (ground truth):
private static JsonParser collectServerHoldingBinElementsRecursively(Project project,int depth,ProgressStatus progressStatus) throws ServerException, IOException, URISyntaxException {
  String holdingBinId=MDKConstants.HOLDING_BIN_ID_PREFIX + Converters.getIProjectToIdConverter().apply(project.getPrimaryProject());
  return MMSUtils.getElementRecursively(project,holdingBinId,depth,progressStatus);
}