Program: 114796
Project: 114796
Buggy source:
private static void updateHandlers(Document document){
  Element handlersElement=(Element)document.getElementsByTagNameNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_HANDLERS).item(0);
  NodeList handlerNodes=handlersElement.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_HANDLER);
  for (int i=0; i < handlerNodes.getLength(); ++i) {
    Element handler=(Element)handlerNodes.item(i);
    String className=handler.getAttribute(Constants.SYNAPSE_API_ATTRIBUTE_CLASS);
    if (Constants.SYNAPSE_API_VALUE_CORS_HANDLER.equals(className)) {
      handlersElement.removeChild(handler);
      break;
    }
  }
  Element inSequenceElement=(Element)document.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_INSEQUENCE).item(0);
  NodeList sendElements=inSequenceElement.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_SEND);
  Element corsHandler=document.createElementNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_HANDLER);
  corsHandler.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_CLASS,Constants.SYNAPSE_API_VALUE_CORS_HANDLER);
  Element property=document.createElementNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_PROPERTY);
  property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_NAME,Constants.SYNAPSE_API_VALUE_INLINE);
  if (0 < sendElements.getLength()) {
    property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_VALUE,Constants.SYNAPSE_API_VALUE_ENPOINT);
  }
 else {
    property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_VALUE,Constants.SYNAPSE_API_VALUE_INLINE_UPPERCASE);
  }
  corsHandler.appendChild(property);
  handlersElement.insertBefore(corsHandler,handlersElement.getFirstChild());
}

Fixed version (ground truth):
private static void updateHandlers(Document document){
  Element handlersElement=(Element)document.getElementsByTagNameNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_HANDLERS).item(0);
  if (handlersElement != null) {
    NodeList handlerNodes=handlersElement.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_HANDLER);
    for (int i=0; i < handlerNodes.getLength(); ++i) {
      Element handler=(Element)handlerNodes.item(i);
      String className=handler.getAttribute(Constants.SYNAPSE_API_ATTRIBUTE_CLASS);
      if (Constants.SYNAPSE_API_VALUE_CORS_HANDLER.equals(className)) {
        handlersElement.removeChild(handler);
        break;
      }
    }
  }
  Element inSequenceElement=(Element)document.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_INSEQUENCE).item(0);
  NodeList sendElements=inSequenceElement.getElementsByTagName(Constants.SYNAPSE_API_ELEMENT_SEND);
  Element corsHandler=document.createElementNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_HANDLER);
  corsHandler.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_CLASS,Constants.SYNAPSE_API_VALUE_CORS_HANDLER);
  Element property=document.createElementNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_PROPERTY);
  property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_NAME,Constants.SYNAPSE_API_VALUE_INLINE);
  if (0 < sendElements.getLength() && handlersElement != null) {
    property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_VALUE,Constants.SYNAPSE_API_VALUE_ENPOINT);
  }
 else {
    property.setAttribute(Constants.SYNAPSE_API_ATTRIBUTE_VALUE,Constants.SYNAPSE_API_VALUE_INLINE_UPPERCASE);
  }
  corsHandler.appendChild(property);
  if (handlersElement != null) {
    handlersElement.insertBefore(corsHandler,handlersElement.getFirstChild());
  }
 else {
    handlersElement=document.createElementNS(Constants.SYNAPSE_API_XMLNS,Constants.SYNAPSE_API_ELEMENT_HANDLERS);
    handlersElement.appendChild(corsHandler);
    document.getFirstChild().appendChild(handlersElement);
  }
}