Program: 95979
Project: 95979
Buggy source:
/** 
 * @param selectionList All nodes that are to be moved.
 * @param newParent The new parent for the nodes.
 * @param extProject where selected nodes moved to
 * @return The commands necessary to move the given nodes.
 */
private List<MultipleNodePM.AbstractCmdHandle> createCommands(List<INodePO> selectionList,ISpecObjContPO newParent,IProjectPO extProject) throws JBException {
  List<MultipleNodePM.AbstractCmdHandle> commands=new ArrayList<MultipleNodePM.AbstractCmdHandle>();
  CompNameUsageMap usageMap=new CompNameUsageMap();
  final String projGuid=GeneralStorage.getInstance().getProject().getGuid();
  final Long projId=GeneralStorage.getInstance().getProject().getId();
  for (  INodePO selNode : selectionList) {
    commands.add(new MultipleNodePM.MoveNodeHandle(selNode,selNode.getParentNode(),newParent));
    List<INodePO> specTcs=new ArrayList<INodePO>();
    List<ISpecTestCasePO> specTcPOs=new ArrayList<ISpecTestCasePO>();
    addCatChildren(selNode,specTcs);
    for (    INodePO spec : specTcs) {
      ISpecTestCasePO specTestCasePo=(ISpecTestCasePO)spec;
      specTcPOs.add(specTestCasePo);
      CollectComponentNameUsersOp op=new CollectComponentNameUsersOp(projGuid,projId);
      TreeTraverser trav=new TreeTraverser(specTestCasePo,op,true,2);
      trav.traverse();
      usageMap.addAll(op.getUsageMap());
      for (      IExecTestCasePO execTc : NodePM.getInternalExecTestCases(specTestCasePo.getGuid(),specTestCasePo.getParentProjectId())) {
        commands.add(new MultipleNodePM.UpdateTestCaseRefHandle(execTc,specTestCasePo));
      }
    }
    commands.add(new MultipleNodePM.UpdateParamNamesHandle(specTcPOs,extProject));
  }
  commands.add(new MultipleNodePM.TransferCompNameHandle(usageMap,GeneralStorage.getInstance().getProject().getId(),extProject));
  return commands;
}

Fixed version (ground truth):
/** 
 * @param selectionList All nodes that are to be moved.
 * @param newParent The new parent for the nodes.
 * @param extProject where selected nodes moved to
 * @return The commands necessary to move the given nodes.
 */
private List<MultipleNodePM.AbstractCmdHandle> createCommands(List<INodePO> selectionList,ISpecObjContPO newParent,IProjectPO extProject) throws JBException {
  List<MultipleNodePM.AbstractCmdHandle> commands=new ArrayList<MultipleNodePM.AbstractCmdHandle>();
  CompNameUsageMap usageMap=new CompNameUsageMap();
  final IProjectPO currenProject=GeneralStorage.getInstance().getProject();
  final String projGuid=currenProject.getGuid();
  final Long projId=currenProject.getId();
  for (  INodePO selNode : selectionList) {
    commands.add(new MultipleNodePM.MoveNodeHandle(selNode,selNode.getParentNode(),newParent));
    List<INodePO> specTcs=new ArrayList<INodePO>();
    List<ISpecTestCasePO> specTcPOs=new ArrayList<ISpecTestCasePO>();
    addCatChildren(selNode,specTcs);
    for (    INodePO spec : specTcs) {
      ISpecTestCasePO specTestCasePo=(ISpecTestCasePO)spec;
      specTcPOs.add(specTestCasePo);
      CollectComponentNameUsersOp op=new CollectComponentNameUsersOp(projGuid,projId);
      new TreeTraverser(specTestCasePo,op,true,2).traverse();
      usageMap.addAll(op.getUsageMap());
      for (      IExecTestCasePO execTc : NodePM.getInternalExecTestCases(specTestCasePo.getGuid(),specTestCasePo.getParentProjectId())) {
        commands.add(new MultipleNodePM.UpdateTestCaseRefHandle(execTc,specTestCasePo));
      }
    }
    commands.add(new MultipleNodePM.UpdateParamNamesHandle(specTcPOs,extProject));
  }
  commands.add(new MultipleNodePM.TransferCompNameHandle(usageMap,projId,extProject));
  return commands;
}