Program: 52991
Project: 52991
Buggy source:
public static void main(String args[]) throws ConfigurationException, DaoException {
  Configurator configurator=new Configurator(new Configuration());
  LocalLinkDao sqlDao=configurator.get(LocalLinkDao.class,"String_Node_Str");
  LocalLinkDao matrixDao=configurator.get(LocalLinkDao.class,"String_Node_Str");
  Map<LocalId,Set<LocalId>> outGraph=new HashMap<LocalId,Set<LocalId>>();
  Map<LocalId,Set<LocalId>> inGraph=new HashMap<LocalId,Set<LocalId>>();
  long start=System.currentTimeMillis();
  int i=0;
  for (  LocalLink ll : sqlDao.get(new DaoFilter())) {
    if (ll.getSourceId() < 0 || ll.getDestId() < 0) {
      continue;
    }
    LocalId src=new LocalId(ll.getLanguage(),ll.getSourceId());
    LocalId dest=new LocalId(ll.getLanguage(),ll.getDestId());
    if (!outGraph.containsKey(src)) {
      outGraph.put(src,new HashSet<LocalId>());
    }
    outGraph.get(src).add(dest);
    if (!inGraph.containsKey(dest)) {
      inGraph.put(dest,new HashSet<LocalId>());
    }
    inGraph.get(dest).add(src);
    i++;
  }
  double elapsed=(System.currentTimeMillis() - start) / 1000.0;
  System.out.println("String_Node_Str" + i + "String_Node_Str"+ elapsed+ "String_Node_Str");
  start=System.currentTimeMillis();
  int different=0;
  int adds=0;
  int dels=0;
  for (  LocalId src : outGraph.keySet()) {
    Set<LocalId> expected=outGraph.get(src);
    Set<LocalId> actual=new HashSet<LocalId>();
    for (    LocalLink ll : matrixDao.getLinks(src.getLanguage(),src.getId(),true)) {
      if (ll.getSourceId() < 0 || ll.getDestId() < 0) {
        continue;
      }
      actual.add(new LocalId(ll.getLanguage(),ll.getDestId()));
    }
    if (!actual.equals(expected)) {
      System.out.println("String_Node_Str" + actual + "String_Node_Str"+ expected);
      different++;
    }
    adds+=retainedSize(actual,expected);
    dels+=retainedSize(expected,actual);
  }
  elapsed=(System.currentTimeMillis() - start) / 1000.0;
  System.out.println("String_Node_Str" + i + "String_Node_Str"+ elapsed+ "String_Node_Str");
  System.out.println("String_Node_Str" + different);
  System.out.println("String_Node_Str" + adds);
  System.out.println("String_Node_Str" + dels);
}

Fixed version (ground truth):
public static void main(String args[]) throws ConfigurationException, DaoException {
  Env env=new EnvBuilder().build();
  Configurator configurator=env.getConfigurator();
  LocalLinkDao sqlDao=configurator.get(LocalLinkDao.class,"String_Node_Str");
  LocalLinkDao matrixDao=configurator.get(LocalLinkDao.class,"String_Node_Str");
  Map<LocalId,Set<LocalId>> outGraph=new HashMap<LocalId,Set<LocalId>>();
  Map<LocalId,Set<LocalId>> inGraph=new HashMap<LocalId,Set<LocalId>>();
  long start=System.currentTimeMillis();
  int i=0;
  for (  LocalLink ll : sqlDao.get(new DaoFilter())) {
    if (ll.getSourceId() < 0 || ll.getDestId() < 0) {
      continue;
    }
    LocalId src=new LocalId(ll.getLanguage(),ll.getSourceId());
    LocalId dest=new LocalId(ll.getLanguage(),ll.getDestId());
    if (!outGraph.containsKey(src)) {
      outGraph.put(src,new HashSet<LocalId>());
    }
    outGraph.get(src).add(dest);
    if (!inGraph.containsKey(dest)) {
      inGraph.put(dest,new HashSet<LocalId>());
    }
    inGraph.get(dest).add(src);
    i++;
  }
  double elapsed=(System.currentTimeMillis() - start) / 1000.0;
  System.out.println("String_Node_Str" + i + "String_Node_Str"+ elapsed+ "String_Node_Str");
  start=System.currentTimeMillis();
  int different=0;
  int adds=0;
  int dels=0;
  for (  LocalId src : outGraph.keySet()) {
    Set<LocalId> expected=outGraph.get(src);
    Set<LocalId> actual=new HashSet<LocalId>();
    for (    LocalLink ll : matrixDao.getLinks(src.getLanguage(),src.getId(),true)) {
      if (ll.getSourceId() < 0 || ll.getDestId() < 0) {
        continue;
      }
      actual.add(new LocalId(ll.getLanguage(),ll.getDestId()));
    }
    if (!actual.equals(expected)) {
      System.out.println("String_Node_Str" + actual + "String_Node_Str"+ expected);
      different++;
    }
    adds+=retainedSize(actual,expected);
    dels+=retainedSize(expected,actual);
  }
  elapsed=(System.currentTimeMillis() - start) / 1000.0;
  System.out.println("String_Node_Str" + i + "String_Node_Str"+ elapsed+ "String_Node_Str");
  System.out.println("String_Node_Str" + different);
  System.out.println("String_Node_Str" + adds);
  System.out.println("String_Node_Str" + dels);
}