Program: 122378
Project: 122378
Buggy source:
@SuppressWarnings("String_Node_Str") public INode buildNodeFromNode(final INode graphicalNode,final IProcess process){
  if (buildGraphicalMap.containsKey(graphicalNode)) {
    return (INode)buildGraphicalMap.get(graphicalNode);
  }
  Node newGraphicalNode=new Node(graphicalNode.getComponent(),(IProcess2)process);
  newGraphicalNode.setMetadataList(graphicalNode.getMetadataList());
  IExternalNode externalNode=graphicalNode.getExternalNode();
  if (externalNode != null) {
    AbstractExternalData externalEmfData=((IExternalNode)externalNode).getExternalEmfData();
    ((IExternalNode)newGraphicalNode.getExternalNode()).setExternalEmfData(externalEmfData);
  }
  if (graphicalNode.getExternalData() != null) {
    newGraphicalNode.setExternalData(graphicalNode.getExternalData());
  }
  copyElementParametersValue(graphicalNode,newGraphicalNode);
  newGraphicalNode.setDummy(graphicalNode.isDummy());
  ValidationRulesUtil.createRejectConnector(newGraphicalNode);
  ValidationRulesUtil.updateRejectMetatable(newGraphicalNode,graphicalNode);
  NodeContainer nc=null;
  if (newGraphicalNode.isJoblet()) {
    nc=new JobletContainer(newGraphicalNode);
  }
 else {
    nc=new NodeContainer(newGraphicalNode);
  }
  ((Process)process).addNodeContainer(nc);
  buildGraphicalMap.put(graphicalNode,newGraphicalNode);
  IConnection dataConnec;
  for (  IConnection connection : (List<IConnection>)graphicalNode.getOutgoingConnections()) {
    if (!connection.isActivate()) {
      continue;
    }
    INode connTarget=connection.getTarget();
    if (connTarget.getJobletNode() != null) {
      connTarget=connTarget.getJobletNode();
    }
    INode target=buildNodeFromNode(connTarget,process);
    dataConnec=new Connection(newGraphicalNode,target,connection.getLineStyle(),connection.getConnectorName(),connection.getMetaName(),connection.getName(),connection.getUniqueName(),connection.isMonitorConnection());
    copyElementParametersValue(connection,dataConnec);
    dataConnec.setTraceConnection(connection.isTraceConnection());
  }
  newGraphicalNode.setActivate(graphicalNode.isActivate());
  newGraphicalNode.setStart(graphicalNode.isStart());
  return newGraphicalNode;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public INode buildNodeFromNode(final INode graphicalNode,final IProcess process){
  if (buildGraphicalMap.containsKey(graphicalNode)) {
    return (INode)buildGraphicalMap.get(graphicalNode);
  }
  Node newGraphicalNode=new Node(graphicalNode.getComponent(),(IProcess2)process);
  newGraphicalNode.setMetadataList(graphicalNode.getMetadataList());
  IExternalNode externalNode=graphicalNode.getExternalNode();
  if (externalNode != null) {
    AbstractExternalData externalEmfData=(externalNode).getExternalEmfData();
    (newGraphicalNode.getExternalNode()).setExternalEmfData(externalEmfData);
  }
  if (graphicalNode.getExternalData() != null) {
    newGraphicalNode.setExternalData(graphicalNode.getExternalData());
  }
  copyElementParametersValue(graphicalNode,newGraphicalNode);
  newGraphicalNode.setDummy(graphicalNode.isDummy());
  ValidationRulesUtil.createRejectConnector(newGraphicalNode);
  ValidationRulesUtil.updateRejectMetatable(newGraphicalNode,graphicalNode);
  NodeContainer nc=null;
  if (newGraphicalNode.isJoblet()) {
    nc=new JobletContainer(newGraphicalNode);
  }
 else {
    nc=new NodeContainer(newGraphicalNode);
  }
  ((Process)process).addNodeContainer(nc);
  buildGraphicalMap.put(graphicalNode,newGraphicalNode);
  IConnection dataConnec;
  for (  IConnection connection : (List<IConnection>)graphicalNode.getOutgoingConnections()) {
    if (!connection.isActivate()) {
      continue;
    }
    INode connTarget=connection.getTarget();
    if (connTarget.getJobletNode() != null) {
      connTarget=connTarget.getJobletNode();
    }
    INode target=buildNodeFromNode(connTarget,process);
    dataConnec=new Connection(newGraphicalNode,target,connection.getLineStyle(),connection.getConnectorName(),connection.getMetaName(),connection.getName(),connection.getUniqueName(),connection.isMonitorConnection());
    copyElementParametersValue(connection,dataConnec);
    dataConnec.setTraceConnection(connection.isTraceConnection());
  }
  newGraphicalNode.setActivate(graphicalNode.isActivate());
  newGraphicalNode.setStart(graphicalNode.isStart());
  return newGraphicalNode;
}