Program: 122271
Project: 122271
Buggy source:
@Override public void execute(){
  AbstractNode targetNode=(AbstractNode)targetEditPart.getModel();
  boolean targetVar=targetNode instanceof VarNode;
  boolean targetOutput=targetNode instanceof OutputTreeNode;
  boolean targetInput=targetNode instanceof TreeNode && !(targetNode instanceof OutputTreeNode);
  String expression=targetNode.getExpression();
  if (objects.getToTransfer() != null) {
    for (    Object obj : objects.getToTransfer()) {
      AbstractNode sourceNode=null;
      if (objects.getType() == TransferdType.INPUT) {
        TreeNodeEditPart part=(TreeNodeEditPart)obj;
        sourceNode=(TreeNode)part.getModel();
        if (expression == null) {
          expression=XmlMapUtil.convertToExpression(((TreeNode)sourceNode).getXpath());
        }
 else {
          expression=expression + "String_Node_Str" + XmlMapUtil.convertToExpression(((TreeNode)sourceNode).getXpath());
        }
        targetNode.setExpression(expression);
        if (targetVar || targetOutput) {
          createConnection(sourceNode,targetNode);
          if (targetOutput) {
            OutputTreeNode model=(OutputTreeNode)targetNode;
            if (NodeType.NAME_SPACE.equals(model.getNodeType()) && model.getExpression() != null && !"String_Node_Str".equals(model.getExpression())) {
              model.setDefaultValue("String_Node_Str");
            }
            InputLoopTableUtil.addSourceLoopToInputLoopTable((TreeNode)sourceNode,model,manager.getMainInputTree());
          }
        }
 else         if (targetInput) {
          createLookupConnection((TreeNode)sourceNode,(TreeNode)targetNode);
        }
      }
 else       if (objects.getType() == TransferdType.VAR) {
        String tableName="String_Node_Str";
        VarNodeEditPart part=(VarNodeEditPart)obj;
        sourceNode=(VarNode)part.getModel();
        if (sourceNode.eContainer() instanceof VarTable) {
          tableName=((VarTable)sourceNode.eContainer()).getName();
        }
        if (expression == null) {
          expression=tableName + "String_Node_Str" + sourceNode.getName();
        }
 else {
          expression=expression + "String_Node_Str" + tableName+ "String_Node_Str"+ sourceNode.getName();
        }
        targetNode.setExpression(expression);
        createConnection(sourceNode,targetNode);
      }
    }
  }
}

Fixed version (ground truth):
@Override public void execute(){
  AbstractNode targetNode=(AbstractNode)targetEditPart.getModel();
  boolean targetVar=targetNode instanceof VarNode;
  boolean targetOutput=targetNode instanceof OutputTreeNode;
  boolean targetInput=targetNode instanceof TreeNode && !(targetNode instanceof OutputTreeNode);
  String expression=targetNode.getExpression();
  if (objects.getToTransfer() != null) {
    for (    Object obj : objects.getToTransfer()) {
      AbstractNode sourceNode=null;
      if (objects.getType() == TransferdType.INPUT) {
        TreeNodeEditPart part=(TreeNodeEditPart)obj;
        sourceNode=(TreeNode)part.getModel();
        if (expression == null) {
          expression=XmlMapUtil.convertToExpression(((TreeNode)sourceNode).getXpath());
        }
 else {
          expression=expression + "String_Node_Str" + XmlMapUtil.convertToExpression(((TreeNode)sourceNode).getXpath());
        }
        targetNode.setExpression(expression);
        if (targetVar || targetOutput) {
          createConnection(sourceNode,targetNode);
          if (targetOutput) {
            OutputTreeNode model=(OutputTreeNode)targetNode;
            if (NodeType.NAME_SPACE.equals(model.getNodeType()) && model.getExpression() != null && !"String_Node_Str".equals(model.getExpression())) {
              model.setDefaultValue("String_Node_Str");
            }
          }
        }
 else         if (targetInput) {
          createLookupConnection((TreeNode)sourceNode,(TreeNode)targetNode);
        }
      }
 else       if (objects.getType() == TransferdType.VAR) {
        String tableName="String_Node_Str";
        VarNodeEditPart part=(VarNodeEditPart)obj;
        sourceNode=(VarNode)part.getModel();
        if (sourceNode.eContainer() instanceof VarTable) {
          tableName=((VarTable)sourceNode.eContainer()).getName();
        }
        if (expression == null) {
          expression=tableName + "String_Node_Str" + sourceNode.getName();
        }
 else {
          expression=expression + "String_Node_Str" + tableName+ "String_Node_Str"+ sourceNode.getName();
        }
        targetNode.setExpression(expression);
        createConnection(sourceNode,targetNode);
      }
    }
  }
}