Program: 117923
Project: 117923
Buggy source:
/** 
 * this function is moved from the method updateGraphicalNodes.
 */
@SuppressWarnings("String_Node_Str") @Override public void execute(){
  Object job=result.getJob();
  if (job == null) {
    return;
  }
  if (job instanceof Process) {
    Process process=(Process)job;
    Object parameter=result.getParameter();
    if (parameter instanceof PropertyChangeEvent) {
      PropertyChangeEvent evt=(PropertyChangeEvent)parameter;
      updatePropertyChangeEvents(process,evt);
    }
 else {
      IUpdateItemType updateType=result.getUpdateType();
      if (updateType instanceof EUpdateItemType) {
switch ((EUpdateItemType)updateType) {
case JOBLET_RENAMED:
          if (!(parameter instanceof List)) {
            return;
          }
        List<Object> params=(List<Object>)parameter;
      if (params.size() != 3) {
        return;
      }
    final String oldName=(String)params.get(1);
  final String newName=(String)params.get(2);
updateRenaming(process,oldName,newName);
break;
case RELOAD:
List<Node> jobletNodes=(List<Node>)result.getUpdateObject();
if (jobletNodes != null && !jobletNodes.isEmpty()) {
for (Node node : jobletNodes) {
IComponent newComponent=ComponentsFactoryProvider.getInstance().get(node.getComponent().getName(),process.getComponentsType());
if (newComponent == null) {
continue;
}
Node currentNode=getOriginalNodeFromProcess(node);
boolean neesPro=needPropagate(currentNode);
if (currentNode.isJoblet() || currentNode.isMapReduce()) {
List<IElementParameter> tempList=new ArrayList<IElementParameter>(currentNode.getElementParameters());
if (result.isNeedReloadJoblet()) {
  reloadNode(currentNode,newComponent);
}
if (currentNode.getNodeContainer() instanceof AbstractJobletContainer) {
  for (  IElementParameter para : tempList) {
    currentNode.getElementParameter(para.getName()).setValue(para.getValue());
  }
  ((AbstractJobletContainer)currentNode.getNodeContainer()).updateJobletNodes(true);
}
}
 else {
reloadNode(currentNode,newComponent);
}
propagate(currentNode,neesPro);
}
process.checkProcess();
}
break;
case JOBLET_SCHEMA:
updateSchema(process,(Node)result.getUpdateObject());
break;
default :
}
}
}
}
}

Fixed version (ground truth):
/** 
 * this function is moved from the method updateGraphicalNodes.
 */
@SuppressWarnings("String_Node_Str") @Override public void execute(){
  Object job=result.getJob();
  if (job == null) {
    return;
  }
  if (job instanceof Process) {
    Process process=(Process)job;
    Object parameter=result.getParameter();
    if (parameter instanceof PropertyChangeEvent) {
      PropertyChangeEvent evt=(PropertyChangeEvent)parameter;
      updatePropertyChangeEvents(process,evt);
    }
 else {
      IUpdateItemType updateType=result.getUpdateType();
      if (updateType instanceof EUpdateItemType) {
switch ((EUpdateItemType)updateType) {
case JOBLET_RENAMED:
          if (!(parameter instanceof List)) {
            return;
          }
        List<Object> params=(List<Object>)parameter;
      if (params.size() != 3) {
        return;
      }
    final String oldName=(String)params.get(1);
  final String newName=(String)params.get(2);
updateRenaming(process,oldName,newName);
break;
case RELOAD:
List<Node> jobletNodes=(List<Node>)result.getUpdateObject();
if (jobletNodes != null && !jobletNodes.isEmpty()) {
for (Node node : jobletNodes) {
IComponent newComponent=ComponentsFactoryProvider.getInstance().get(node.getComponent().getName(),process.getComponentsType());
if (newComponent == null) {
continue;
}
Node currentNode=getOriginalNodeFromProcess(node);
boolean neesPro=needPropagate(currentNode);
if (currentNode.isJoblet() || currentNode.isMapReduce()) {
List<IElementParameter> tempList=new ArrayList<IElementParameter>(currentNode.getElementParameters());
if (result.isNeedReloadJoblet()) {
  reloadNode(currentNode,newComponent);
}
if (currentNode.getNodeContainer() instanceof AbstractJobletContainer) {
  for (  IElementParameter tempParam : tempList) {
    IElementParameter param=currentNode.getElementParameter(tempParam.getName());
    if (param != null) {
      param.setValue(tempParam.getValue());
    }
  }
  ((AbstractJobletContainer)currentNode.getNodeContainer()).updateJobletNodes(true);
}
}
 else {
reloadNode(currentNode,newComponent);
}
propagate(currentNode,neesPro);
}
process.checkProcess();
}
break;
case JOBLET_SCHEMA:
updateSchema(process,(Node)result.getUpdateObject());
break;
default :
}
}
}
}
}