Program: 132160
Project: 132160
Buggy source:
@Override public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>,DataObject> change){
  printTraceStart(LOG);
  Map<InstanceIdentifier<?>,DataObject> dataOriginalDataObject=change.getOriginalData();
  Map<InstanceIdentifier<?>,DataObject> dataCreatedObject=change.getCreatedData();
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : dataCreatedObject.entrySet()) {
    if (entry.getValue() instanceof Node) {
      Node node=(Node)entry.getValue();
      String nodeName=node.getNodeId().getValue();
      LOG.debug("String_Node_Str",node.toString());
    }
  }
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : change.getCreatedData().entrySet()) {
    Node node=null;
    if (entry.getKey().getTargetType() == NetconfNode.class) {
      NodeId nodeId=getNodeId(entry);
      String nodeName=nodeId.getValue();
      LOG.info("String_Node_Str",nodeId.getValue());
      NetconfNode nnode=(NetconfNode)entry.getValue();
      NetconfNodeFields.ConnectionStatus csts=nnode.getConnectionStatus();
      if (csts == NetconfNodeFields.ConnectionStatus.Connected) {
        List<String> capabilities=nnode.getAvailableCapabilities().getAvailableCapability();
        LOG.info("String_Node_Str",capabilities);
      }
      if (SfcProviderServiceForwarderAPI.putServiceFunctionForwarderExecutor(SfcNetconfServiceForwarderAPI.buildServiceForwarderFromNetonf(nodeName,nnode))) {
        LOG.info("String_Node_Str",nodeName);
      }
 else {
        LOG.error("String_Node_Str",nodeName);
      }
    }
  }
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : change.getUpdatedData().entrySet()) {
    if (entry.getKey().getTargetType() == NetconfNode.class) {
      NodeId nodeId=getNodeId(entry);
      String nodeName=nodeId.getValue();
      LOG.info("String_Node_Str",nodeId.getValue());
      NetconfNode nnode=(NetconfNode)entry.getValue();
      NetconfNodeFields.ConnectionStatus csts=nnode.getConnectionStatus();
      if (csts == NetconfNodeFields.ConnectionStatus.Connected) {
        List<String> capabilities=nnode.getAvailableCapabilities().getAvailableCapability();
        LOG.info("String_Node_Str",capabilities);
      }
    }
  }
  printTraceStop(LOG);
}

Fixed version (ground truth):
@Override public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>,DataObject> change){
  printTraceStart(LOG);
  Map<InstanceIdentifier<?>,DataObject> dataOriginalDataObject=change.getOriginalData();
  Map<InstanceIdentifier<?>,DataObject> dataCreatedObject=change.getCreatedData();
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : dataCreatedObject.entrySet()) {
    if (entry.getValue() instanceof Node) {
      Node node=(Node)entry.getValue();
      String nodeName=node.getNodeId().getValue();
      LOG.debug("String_Node_Str",node.toString());
    }
  }
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : change.getCreatedData().entrySet()) {
    Node node=null;
    if (entry.getKey().getTargetType() == NetconfNode.class) {
      NodeId nodeId=getNodeId(entry);
      String nodeName=nodeId.getValue();
      LOG.info("String_Node_Str",nodeId.getValue());
      NetconfNode nnode=(NetconfNode)entry.getValue();
      NetconfNodeFields.ConnectionStatus csts=nnode.getConnectionStatus();
      if (csts == NetconfNodeFields.ConnectionStatus.Connected) {
        List<String> capabilities=nnode.getAvailableCapabilities().getAvailableCapability();
        LOG.info("String_Node_Str",capabilities);
      }
      if (SfcProviderServiceForwarderAPI.putServiceFunctionForwarderExecutor(SfcNetconfServiceForwarderAPI.buildServiceForwarderFromNetonf(nodeName,nnode))) {
        LOG.info("String_Node_Str",nodeName);
      }
 else {
        LOG.error("String_Node_Str",nodeName);
      }
    }
  }
  for (  Map.Entry<InstanceIdentifier<?>,DataObject> entry : change.getUpdatedData().entrySet()) {
    if ((entry.getKey().getTargetType() == NetconfNode.class) && (!(dataCreatedObject.containsKey(entry.getKey())))) {
      NodeId nodeId=getNodeId(entry);
      String nodeName=nodeId.getValue();
      LOG.info("String_Node_Str",nodeId.getValue());
      NetconfNode nnode=(NetconfNode)entry.getValue();
      NetconfNodeFields.ConnectionStatus csts=nnode.getConnectionStatus();
      if (csts == NetconfNodeFields.ConnectionStatus.Connected) {
        if (SfcProviderServiceForwarderAPI.putServiceFunctionForwarderExecutor(SfcNetconfServiceForwarderAPI.buildServiceForwarderFromNetonf(nodeName,nnode))) {
          LOG.info("String_Node_Str",nodeName);
        }
 else {
          LOG.error("String_Node_Str",nodeName);
        }
      }
    }
  }
  printTraceStop(LOG);
}