Program: 61295
Project: 61295
Buggy source:
protected DataModel buildModel() throws IOException {
  long newLastModified=dataFile.lastModified();
  long newLastUpdateFileModified=readLastUpdateFileModified();
  boolean loadFreshData=(delegate == null) || (newLastModified > lastModified + MIN_RELOAD_INTERVAL_MS);
  lastModified=newLastModified;
  lastUpdateFileModified=newLastUpdateFileModified;
  if (hasPrefValues) {
    if (loadFreshData) {
      FastByIDMap<Collection<Preference>> data=new FastByIDMap<Collection<Preference>>();
      FileLineIterator iterator=new FileLineIterator(dataFile,false);
      processFile(iterator,data);
      for (      File updateFile : findUpdateFiles()) {
        processFile(new FileLineIterator(updateFile,false),data);
      }
      return new GenericDataModel(GenericDataModel.toDataMap(data,true));
    }
 else {
      FastByIDMap<PreferenceArray> rawData=((GenericDataModel)delegate).getRawUserData();
      for (      File updateFile : findUpdateFiles()) {
        processFile(new FileLineIterator(updateFile,false),rawData);
      }
      return new GenericDataModel(rawData);
    }
  }
 else {
    if (loadFreshData) {
      FastByIDMap<FastIDSet> data=new FastByIDMap<FastIDSet>();
      FileLineIterator iterator=new FileLineIterator(dataFile,false);
      processFileWithoutID(iterator,data);
      for (      File updateFile : findUpdateFiles()) {
        processFileWithoutID(new FileLineIterator(updateFile,false),data);
      }
      return new GenericBooleanPrefDataModel(data);
    }
 else {
      FastByIDMap<FastIDSet> rawData=((GenericBooleanPrefDataModel)delegate).getRawUserData();
      for (      File updateFile : findUpdateFiles()) {
        processFileWithoutID(new FileLineIterator(updateFile,false),rawData);
      }
      return new GenericBooleanPrefDataModel(rawData);
    }
  }
}

Fixed version (ground truth):
protected DataModel buildModel() throws IOException {
  long newLastModified=dataFile.lastModified();
  long newLastUpdateFileModified=readLastUpdateFileModified();
  boolean loadFreshData=(delegate == null) || (newLastModified > lastModified + MIN_RELOAD_INTERVAL_MS);
  lastModified=newLastModified;
  lastUpdateFileModified=newLastUpdateFileModified;
  if (hasPrefValues) {
    if (loadFreshData) {
      FastByIDMap<Collection<Preference>> data=new FastByIDMap<Collection<Preference>>();
      FileLineIterator iterator=new FileLineIterator(dataFile,false);
      processFile(iterator,data,false);
      for (      File updateFile : findUpdateFiles()) {
        processFile(new FileLineIterator(updateFile,false),data,false);
      }
      return new GenericDataModel(GenericDataModel.toDataMap(data,true));
    }
 else {
      FastByIDMap<PreferenceArray> rawData=((GenericDataModel)delegate).getRawUserData();
      for (      File updateFile : findUpdateFiles()) {
        processFile(new FileLineIterator(updateFile,false),rawData,true);
      }
      return new GenericDataModel(rawData);
    }
  }
 else {
    if (loadFreshData) {
      FastByIDMap<FastIDSet> data=new FastByIDMap<FastIDSet>();
      FileLineIterator iterator=new FileLineIterator(dataFile,false);
      processFileWithoutID(iterator,data);
      for (      File updateFile : findUpdateFiles()) {
        processFileWithoutID(new FileLineIterator(updateFile,false),data);
      }
      return new GenericBooleanPrefDataModel(data);
    }
 else {
      FastByIDMap<FastIDSet> rawData=((GenericBooleanPrefDataModel)delegate).getRawUserData();
      for (      File updateFile : findUpdateFiles()) {
        processFileWithoutID(new FileLineIterator(updateFile,false),rawData);
      }
      return new GenericBooleanPrefDataModel(rawData);
    }
  }
}