Program: 124283
Project: 124283
Buggy source:
/** 
 * DOC qzhang Comment method "loadNode".
 * @param nType
 * @param component
 * @return
 */
protected Node loadNode(NodeType nType,IComponent component,Hashtable<String,Node> nodesHashtable,EList listParamType){
  Node nc;
  nc=new Node(component,this);
  nc.setLocation(new Point(nType.getPosX(),nType.getPosY()));
  Point offset=new Point(nType.getOffsetLabelX(),nType.getOffsetLabelY());
  nc.getNodeLabel().setOffset(offset);
  if (nType.isSetSizeX()) {
    nc.setSize(new Dimension(nType.getSizeX(),nType.getSizeY()));
  }
  loadElementParameters(nc,listParamType);
  IElementParameter processParam=nc.getElementParameterFromField(EParameterFieldType.PROCESS_TYPE);
  if (processParam != null) {
    IElementParameter processIdParam=processParam.getChildParameters().get(EParameterName.PROCESS_TYPE_PROCESS.getName());
    IElementParameter processVersionParam=processParam.getChildParameters().get(EParameterName.PROCESS_TYPE_VERSION.getName());
    ProcessItem processItem=null;
    if (processVersionParam != null) {
      processItem=ItemCacheManager.getProcessItem((String)processIdParam.getValue(),(String)processVersionParam.getValue());
    }
 else {
      processItem=ItemCacheManager.getProcessItem((String)processIdParam.getValue());
    }
    if (processItem != null) {
      nc.setPropertyValue(processParam.getName(),processItem.getProperty().getLabel());
    }
  }
  if (nc.getExternalNode() != null && nType.getNodeData() != null) {
    nc.getExternalNode().buildExternalData(nType.getNodeData());
    nc.setExternalData(nc.getExternalNode().getExternalData());
  }
  loadSchema(nc,nType);
  ValidationRulesUtil.createRejectConnector(nc);
  loadColumnsBasedOnSchema(nc,listParamType);
  NodeContainer nodeContainer=null;
  if (nc.isJoblet()) {
    nodeContainer=new JobletContainer(nc);
  }
 else {
    nodeContainer=new NodeContainer(nc);
  }
  addNodeContainer(nodeContainer);
  nodesHashtable.put(nc.getUniqueName(),nc);
  updateAllMappingTypes();
  nc.setNeedLoadLib(false);
  return nc;
}

Fixed version (ground truth):
/** 
 * DOC qzhang Comment method "loadNode".
 * @param nType
 * @param component
 * @return
 */
protected Node loadNode(NodeType nType,IComponent component,Hashtable<String,Node> nodesHashtable,EList listParamType){
  Node nc;
  nc=new Node(component,this);
  nc.setLocation(new Point(nType.getPosX(),nType.getPosY()));
  Point offset=new Point(nType.getOffsetLabelX(),nType.getOffsetLabelY());
  nc.getNodeLabel().setOffset(offset);
  if (nType.isSetSizeX()) {
    nc.setSize(new Dimension(nType.getSizeX(),nType.getSizeY()));
  }
  loadElementParameters(nc,listParamType);
  IElementParameter processParam=nc.getElementParameterFromField(EParameterFieldType.PROCESS_TYPE);
  if (processParam != null) {
    IElementParameter processIdParam=processParam.getChildParameters().get(EParameterName.PROCESS_TYPE_PROCESS.getName());
    IElementParameter processVersionParam=processParam.getChildParameters().get(EParameterName.PROCESS_TYPE_VERSION.getName());
    ProcessItem processItem=null;
    if (processVersionParam != null) {
      processItem=ItemCacheManager.getProcessItem((String)processIdParam.getValue(),(String)processVersionParam.getValue());
    }
 else {
      processItem=ItemCacheManager.getProcessItem((String)processIdParam.getValue());
    }
    if (processItem != null) {
      nc.setPropertyValue(processParam.getName(),processItem.getProperty().getLabel());
    }
  }
  if (nc.getExternalNode() != null && nType.getNodeData() != null) {
    nc.getExternalNode().buildExternalData(EcoreUtil.copy(nType.getNodeData()));
    nc.setExternalData(nc.getExternalNode().getExternalData());
  }
  loadSchema(nc,nType);
  ValidationRulesUtil.createRejectConnector(nc);
  loadColumnsBasedOnSchema(nc,listParamType);
  NodeContainer nodeContainer=null;
  if (nc.isJoblet()) {
    nodeContainer=new JobletContainer(nc);
  }
 else {
    nodeContainer=new NodeContainer(nc);
  }
  addNodeContainer(nodeContainer);
  nodesHashtable.put(nc.getUniqueName(),nc);
  updateAllMappingTypes();
  nc.setNeedLoadLib(false);
  return nc;
}