Program: 53070
Project: 53070
Buggy source:
@Test public void testArticle() throws ClassNotFoundException, IOException, SQLException, DaoException {
  Class.forName("String_Node_Str");
  File tmpDir=File.createTempFile("String_Node_Str",null);
  tmpDir.delete();
  tmpDir.deleteOnExit();
  tmpDir.mkdirs();
  BoneCPDataSource ds=new BoneCPDataSource();
  ds.setJdbcUrl("String_Node_Str" + new File(tmpDir,"String_Node_Str").getAbsolutePath());
  ds.setUsername("String_Node_Str");
  ds.setPassword("String_Node_Str");
  Multimap<Language,LocalArticle> map=HashMultimap.create();
  LocalArticleSqlDao localDao=new LocalArticleSqlDao(ds);
  localDao.beginLoad();
  for (  Language language : Language.LANGUAGES) {
    LocalArticle temp=new LocalArticle(language,language.hashCode(),new Title(language.getEnLangName(),LanguageInfo.getByLanguage(language)));
    map.put(language,temp);
    localDao.save(temp);
  }
  localDao.endLoad();
  UniversalPage page=new UniversalArticle(23,0,map);
  UniversalArticleSqlDao dao=new UniversalArticleSqlDao(ds);
  dao.beginLoad();
  dao.save(page);
  dao.endLoad();
  UniversalPage savedPage=dao.getById(23,0);
  assert(savedPage != null);
  assert(page.equals(savedPage));
  assert(page.getNumberOfPages() == savedPage.getNumberOfPages());
  assert(page.getLanguageSetOfExistsInLangs().equals(savedPage.getLanguageSetOfExistsInLangs()));
  assert(page.getClarity() == savedPage.getClarity());
  List<Integer> pageIds=new ArrayList<Integer>();
  pageIds.add(23);
  Map<Integer,UniversalArticle> pages=dao.getByIds(pageIds,0);
  assert(pages.size() == 1);
  assert(pages.get(23).equals(page));
  assert(pages.get(23).equals(savedPage));
}

Fixed version (ground truth):
@Test public void testArticle() throws ClassNotFoundException, IOException, SQLException, DaoException {
  Class.forName("String_Node_Str");
  File tmpDir=File.createTempFile("String_Node_Str",null);
  tmpDir.delete();
  tmpDir.deleteOnExit();
  tmpDir.mkdirs();
  BoneCPDataSource ds=new BoneCPDataSource();
  ds.setJdbcUrl("String_Node_Str" + new File(tmpDir,"String_Node_Str").getAbsolutePath());
  ds.setUsername("String_Node_Str");
  ds.setPassword("String_Node_Str");
  Multimap<Language,LocalArticle> map=HashMultimap.create();
  LocalArticleSqlDao localDao=new LocalArticleSqlDao(ds);
  localDao.beginLoad();
  for (  Language language : Language.LANGUAGES) {
    LocalArticle temp=new LocalArticle(language,language.hashCode(),new Title(language.getEnLangName(),LanguageInfo.getByLanguage(language)));
    map.put(language,temp);
    localDao.save(temp);
  }
  localDao.endLoad();
  UniversalPage page=new UniversalArticle(23,0,map);
  UniversalArticleSqlDao dao=new UniversalArticleSqlDao(ds,new LocalArticleSqlDao(ds));
  dao.beginLoad();
  dao.save(page);
  dao.endLoad();
  UniversalPage savedPage=dao.getById(23,0);
  assert(savedPage != null);
  assert(page.equals(savedPage));
  assert(page.getNumberOfPages() == savedPage.getNumberOfPages());
  assert(page.getLanguageSetOfExistsInLangs().equals(savedPage.getLanguageSetOfExistsInLangs()));
  assert(page.getClarity() == savedPage.getClarity());
  List<Integer> pageIds=new ArrayList<Integer>();
  pageIds.add(23);
  Map<Integer,UniversalArticle> pages=dao.getByIds(pageIds,0);
  assert(pages.size() == 1);
  assert(pages.get(23).equals(page));
  assert(pages.get(23).equals(savedPage));
}