Program: 95465
Project: 95465
Buggy source:
/** 
 * Dealing with a single node
 * @param nodeOld the node
 */
public void traverse(INodePO nodeOld){
  String guid;
  ICompNamesPairPO pair;
  Map<String,String> mapLocal;
  HashMap<String,String> localType=new HashMap<String,String>();
  INodePO node=nodeOld;
  if (m_guidToSwap != null && m_guidToSwap.equals(node.getGuid())) {
    node=m_localNode;
  }
  for (Iterator<INodePO> it=node.getAllNodeIter(); it.hasNext(); ) {
    INodePO child=it.next();
    if (child instanceof ICategoryPO || child instanceof ISpecTestCasePO) {
      traverse(child);
    }
 else     if (child instanceof ICapPO) {
      guid=((ICapPO)child).getComponentName();
      if (guid == null) {
        continue;
      }
      guid=CompNameManager.getInstance().resolveGuid(guid);
      String type=((ICapPO)child).getComponentType();
      updateType(guid,type,localType);
    }
 else     if (child instanceof IExecTestCasePO) {
      ISpecTestCasePO spec=((IExecTestCasePO)child).getSpecTestCase();
      if (spec == null) {
        continue;
      }
      if (!m_localType.containsKey(spec.getId())) {
        traverse(spec);
      }
      mapLocal=m_localType.get(spec.getId());
      for (      String gui : mapLocal.keySet()) {
        pair=((IExecTestCasePO)child).getCompNamesPair(gui);
        if (pair == null) {
          guid=gui;
        }
 else {
          guid=pair.getSecondName();
          guid=CompNameManager.getInstance().resolveGuid(guid);
        }
        updateType(guid,mapLocal.get(gui),localType);
      }
      setCompNamePairTypes((IExecTestCasePO)child,mapLocal);
    }
  }
  m_localType.put(node.getId(),localType);
}

Fixed version (ground truth):
/** 
 * Dealing with a single node
 * @param nodeOld the node
 */
public void traverse(INodePO nodeOld){
  String guid;
  ICompNamesPairPO pair;
  Map<String,String> mapLocal;
  HashMap<String,String> localType=new HashMap<String,String>();
  INodePO node=nodeOld;
  if (m_guidToSwap != null && m_guidToSwap.equals(node.getGuid())) {
    node=m_localNode;
  }
  for (Iterator<INodePO> it=node.getAllNodeIter(); it.hasNext(); ) {
    INodePO child=it.next();
    if (child instanceof ICategoryPO || child instanceof ISpecTestCasePO) {
      traverse(child);
    }
 else     if (child instanceof ICapPO) {
      guid=((ICapPO)child).getComponentName();
      if (guid == null) {
        continue;
      }
      guid=CompNameManager.getInstance().resolveGuid(guid);
      String type=((ICapPO)child).getComponentType();
      updateType(guid,type,localType,node);
    }
 else     if (child instanceof IExecTestCasePO) {
      ISpecTestCasePO spec=((IExecTestCasePO)child).getSpecTestCase();
      if (spec == null) {
        continue;
      }
      if (!m_localType.containsKey(spec.getId())) {
        traverse(spec);
      }
      mapLocal=m_localType.get(spec.getId());
      for (      String gui : mapLocal.keySet()) {
        pair=((IExecTestCasePO)child).getCompNamesPair(gui);
        if (pair == null) {
          guid=gui;
        }
 else {
          guid=pair.getSecondName();
          guid=CompNameManager.getInstance().resolveGuid(guid);
        }
        updateType(guid,mapLocal.get(gui),localType,node);
      }
      setCompNamePairTypes((IExecTestCasePO)child,mapLocal);
    }
  }
  m_localType.put(node.getId(),localType);
}