Program: 186557
Project: 186557
Buggy source:
@Override public void copyResults(Map<InstructionHandle,InstructionHandle> newHandles){
  for (  Map.Entry<InstructionHandle,InstructionHandle> entry : newHandles.entrySet()) {
    InstructionHandle oldHandle=entry.getKey();
    InstructionHandle newHandle=entry.getValue();
    if (newHandle == null)     continue;
    ContextMap<CallString,Pair<ValueMapping,ValueMapping>> value=bounds.get(oldHandle);
    if (value != null)     bounds.put(newHandle,value);
    ContextMap<CallString,Interval> value1=arrayIndices.get(oldHandle);
    if (value1 != null)     arrayIndices.put(newHandle,value1);
    ContextMap<CallString,Integer> value2=scopes.get(oldHandle);
    if (value2 != null)     scopes.put(newHandle,value2);
    ContextMap<CallString,Interval[]> value3=sizes.get(oldHandle);
    if (value3 != null)     sizes.put(newHandle,value3);
    ContextMap<CallString,Set<FlowEdge>> old=infeasibles.get(oldHandle);
    if (old != null) {
      Map<CallString,Set<FlowEdge>> map=new HashMap<CallString,Set<FlowEdge>>(old.size());
      for (      CallString cs : old.keySet()) {
        Set<FlowEdge> newSet=new HashSet<FlowEdge>();
        for (        FlowEdge edge : old.get(cs)) {
          InstructionHandle newHead=newHandles.get(edge.getHead());
          InstructionHandle newTail=newHandles.get(edge.getTail());
          if (newHead != null && newTail != null) {
            newSet.add(new FlowEdge(newTail,newHead,edge.getType()));
          }
        }
        map.put(cs,newSet);
      }
      ContextMap<CallString,Set<FlowEdge>> edges=new ContextMap<CallString,Set<FlowEdge>>(old.getContext(),map);
      infeasibles.put(newHandle,edges);
    }
  }
}

Fixed version (ground truth):
@Override public void copyResults(MethodInfo newContainer,Map<InstructionHandle,InstructionHandle> newHandles){
  for (  Map.Entry<InstructionHandle,InstructionHandle> entry : newHandles.entrySet()) {
    InstructionHandle oldHandle=entry.getKey();
    InstructionHandle newHandle=entry.getValue();
    if (newHandle == null)     continue;
    ContextMap<CallString,Pair<ValueMapping,ValueMapping>> value=bounds.get(oldHandle);
    if (value != null)     bounds.put(newHandle,value.copy(newContainer));
    ContextMap<CallString,Interval> value1=arrayIndices.get(oldHandle);
    if (value1 != null)     arrayIndices.put(newHandle,value1.copy(newContainer));
    ContextMap<CallString,Integer> value2=scopes.get(oldHandle);
    if (value2 != null)     scopes.put(newHandle,value2.copy(newContainer));
    ContextMap<CallString,Interval[]> value3=sizes.get(oldHandle);
    if (value3 != null)     sizes.put(newHandle,value3.copy(newContainer));
    ContextMap<CallString,Set<FlowEdge>> old=infeasibles.get(oldHandle);
    if (old != null) {
      Map<CallString,Set<FlowEdge>> map=new HashMap<CallString,Set<FlowEdge>>(old.size());
      for (      CallString cs : old.keySet()) {
        Set<FlowEdge> newSet=new HashSet<FlowEdge>();
        for (        FlowEdge edge : old.get(cs)) {
          InstructionHandle newHead=newHandles.get(edge.getHead());
          InstructionHandle newTail=newHandles.get(edge.getTail());
          if (newHead != null && newTail != null) {
            newSet.add(new FlowEdge(newTail,newHead,edge.getType()));
          }
        }
        map.put(cs,newSet);
      }
      Context c=old.getContext();
      c.setMethodInfo(newContainer);
      ContextMap<CallString,Set<FlowEdge>> edges=new ContextMap<CallString,Set<FlowEdge>>(c,map);
      infeasibles.put(newHandle,edges);
    }
  }
}