Program: 124247
Project: 124247
Buggy source:
public boolean checkModify(JobletContainer jobletContainer){
  IProcess process=jobletContainer.getNode().getComponent().getProcess();
  List<? extends INode> nodeList=process.getGraphicalNodes();
  List<NodeContainer> containerList=jobletContainer.getNodeContainers();
  for (  NodeContainer nodeCon : containerList) {
    Node node=nodeCon.getNode();
    String jobletUnique=node.getJoblet_unique_name();
    if (jobletUnique == null || "String_Node_Str".equals(jobletUnique)) {
      continue;
    }
    for (    INode nodeOra : nodeList) {
      if (nodeOra.getUniqueName().equals(jobletUnique)) {
        List<? extends IElementParameter> paras=node.getElementParameters();
        for (        IElementParameter para : paras) {
          if (para == null) {
            continue;
          }
          String paraName=para.getName();
          if (paraName != null) {
            if (paraName.equals(EParameterName.UNIQUE_NAME.getName())) {
              continue;
            }
            if (paraName.equals(EParameterName.UPDATE_COMPONENTS.getName())) {
              continue;
            }
            IElementParameter paraOra=nodeOra.getElementParameter(paraName);
            if (paraOra == null || para == null) {
              continue;
            }
            if (para.getValue() != null) {
              if (paraOra.getValue() != null) {
                if (!para.getValue().equals(paraOra.getValue())) {
                  return true;
                }
              }
 else {
                return true;
              }
            }
 else {
              if (paraOra.getValue() != null) {
                return true;
              }
            }
            if (paraOra.getChildParameters() != null && para.getChildParameters() != null) {
              Map<String,IElementParameter> paraChild=para.getChildParameters();
              Map<String,IElementParameter> paraOraChild=paraOra.getChildParameters();
              Iterator<Entry<String,IElementParameter>> ite=paraChild.entrySet().iterator();
              while (ite.hasNext()) {
                Entry<String,IElementParameter> entry=ite.next();
                String key=entry.getKey();
                IElementParameter c=entry.getValue();
                if (key != null && c != null) {
                  IElementParameter oc=paraOraChild.get(key);
                  if (oc != null) {
                    if (c.getValue() != null) {
                      if (oc.getValue() != null) {
                        if (!oc.getValue().equals(c.getValue())) {
                          return true;
                        }
                      }
 else {
                        return true;
                      }
                    }
 else {
                      if (oc.getValue() != null) {
                        return true;
                      }
                    }
                  }
                }
              }
            }
          }
        }
        List<IMetadataTable> nodeTables=node.getMetadataList();
        List<IMetadataTable> oraTables=nodeOra.getMetadataList();
        if (nodeTables.size() != oraTables.size()) {
          return true;
        }
        IExternalNode OraExternalNode=nodeOra.getExternalNode();
        if (OraExternalNode != null) {
          IExternalNode externalNode=node.getExternalNode();
          if (externalNode == null) {
            return true;
          }
          IExternalData oraData=nodeOra.getExternalData();
          IExternalData data=node.getExternalData();
          if (oraData != null) {
            if (data == null) {
              return true;
            }
            List<IMetadataTable> oraMetaList=OraExternalNode.getMetadataList();
            List<IMetadataTable> metaList=externalNode.getMetadataList();
            if (oraMetaList != null) {
              if (metaList == null) {
                return true;
              }
              if (oraMetaList.size() != metaList.size()) {
                return true;
              }
            }
          }
        }
      }
    }
  }
  return false;
}

Fixed version (ground truth):
public boolean checkModify(JobletContainer jobletContainer){
  IProcess process=jobletContainer.getNode().getComponent().getProcess();
  List<? extends INode> nodeList=process.getGraphicalNodes();
  List<NodeContainer> containerList=jobletContainer.getNodeContainers();
  for (  NodeContainer nodeCon : containerList) {
    Node node=nodeCon.getNode();
    String jobletUnique=node.getJoblet_unique_name();
    if (jobletUnique == null || "String_Node_Str".equals(jobletUnique)) {
      continue;
    }
    for (    INode nodeOra : nodeList) {
      if (nodeOra.getUniqueName().equals(jobletUnique)) {
        List<? extends IElementParameter> paras=node.getElementParameters();
        for (        IElementParameter para : paras) {
          if (para == null) {
            continue;
          }
          String paraName=para.getName();
          if (paraName != null) {
            if (paraName.equals(EParameterName.UNIQUE_NAME.getName())) {
              continue;
            }
            if (paraName.equals(EParameterName.UPDATE_COMPONENTS.getName())) {
              continue;
            }
            IElementParameter paraOra=nodeOra.getElementParameter(paraName);
            if (paraOra == null || para == null) {
              continue;
            }
            if (para.getValue() != null) {
              if (paraOra.getValue() != null) {
                if (para.getValue() instanceof IMetadataTable) {
                  boolean isSame=((MetadataTable)para.getValue()).sameMetadataAs((MetadataTable)paraOra.getValue());
                  if (!isSame) {
                    return true;
                  }
                }
 else {
                  if (!para.getValue().equals(paraOra.getValue())) {
                    return true;
                  }
                }
              }
 else {
                return true;
              }
            }
 else {
              if (paraOra.getValue() != null) {
                return true;
              }
            }
            if (paraOra.getChildParameters() != null && para.getChildParameters() != null) {
              Map<String,IElementParameter> paraChild=para.getChildParameters();
              Map<String,IElementParameter> paraOraChild=paraOra.getChildParameters();
              Iterator<Entry<String,IElementParameter>> ite=paraChild.entrySet().iterator();
              while (ite.hasNext()) {
                Entry<String,IElementParameter> entry=ite.next();
                String key=entry.getKey();
                IElementParameter c=entry.getValue();
                if (key != null && c != null) {
                  IElementParameter oc=paraOraChild.get(key);
                  if (oc != null) {
                    if (c.getValue() != null) {
                      if (oc.getValue() != null) {
                        if (!oc.getValue().equals(c.getValue())) {
                          return true;
                        }
                      }
 else {
                        return true;
                      }
                    }
 else {
                      if (oc.getValue() != null) {
                        return true;
                      }
                    }
                  }
                }
              }
            }
          }
        }
        List<IMetadataTable> nodeTables=node.getMetadataList();
        List<IMetadataTable> oraTables=nodeOra.getMetadataList();
        if (nodeTables.size() != oraTables.size()) {
          return true;
        }
        IExternalNode OraExternalNode=nodeOra.getExternalNode();
        if (OraExternalNode != null) {
          IExternalNode externalNode=node.getExternalNode();
          if (externalNode == null) {
            return true;
          }
          IExternalData oraData=nodeOra.getExternalData();
          IExternalData data=node.getExternalData();
          if (oraData != null) {
            if (data == null) {
              return true;
            }
            List<IMetadataTable> oraMetaList=OraExternalNode.getMetadataList();
            List<IMetadataTable> metaList=externalNode.getMetadataList();
            if (oraMetaList != null) {
              if (metaList == null) {
                return true;
              }
              if (oraMetaList.size() != metaList.size()) {
                return true;
              }
            }
          }
        }
      }
    }
  }
  return false;
}