Program: 11277
Project: 11277
Buggy source:
public Backend(Notifier aNotifier,Configuration aConfiguration) throws IOException {
  notifier=aNotifier;
  locations=new HashMap<>();
  executorPool=new ExecutorPool();
  contentExtractor=new ContentExtractor();
  directoryListener=new DirectoryListener(){
    @Override public void fileDeleted(    Configuration.CrawlLocation aFileSystemLocation,    Path aFile){
      try {
        String theFilename=aFile.toString();
        if (luceneIndexHandler.checkIfExists(theFilename)) {
          luceneIndexHandler.removeFromIndex(theFilename);
          aNotifier.showInformation("String_Node_Str" + aFile.getFileName());
        }
      }
 catch (      Exception e) {
        aNotifier.showError("String_Node_Str" + aFile.getFileName(),e);
      }
    }
    @Override public void fileFoundByCrawler(    Configuration.CrawlLocation aLocation,    Path aFile){
      fileCreatedOrModified(aLocation,aFile,false);
    }
    @Override public void fileCreatedOrModified(    Configuration.CrawlLocation aLocation,    Path aFile){
      fileCreatedOrModified(aLocation,aFile,true);
    }
    private void fileCreatedOrModified(    Configuration.CrawlLocation aLocation,    Path aFile,    boolean aShowInformation){
      String theFileName=aFile.toString();
      if (contentExtractor.supportsFile(theFileName)) {
        try {
          progressListener.newFileFound(theFileName);
          BasicFileAttributes theAttributes=Files.readAttributes(aFile,BasicFileAttributes.class);
          UpdateCheckResult theUpdateCheckResult=luceneIndexHandler.checkIfModified(theFileName,theAttributes.size());
          if (theUpdateCheckResult == UpdateCheckResult.UPDATED) {
            if (aShowInformation) {
              notifier.showInformation("String_Node_Str" + aFile.getFileName());
            }
            Content theContent=contentExtractor.extractContentFrom(aFile,theAttributes);
            if (theContent != null) {
              luceneIndexHandler.addToIndex(aLocation.getId(),theContent);
            }
          }
 else {
            LOGGER.info("String_Node_Str" + aFile + "String_Node_Str"+ theUpdateCheckResult);
          }
        }
 catch (        Exception e) {
          aNotifier.showError("String_Node_Str" + aFile.getFileName(),e);
        }
      }
    }
  }
;
  configurationUpdated(aConfiguration);
}

Fixed version (ground truth):
public Backend(Notifier aNotifier,Configuration aConfiguration) throws IOException {
  notifier=aNotifier;
  locations=new HashMap<>();
  executorPool=new ExecutorPool();
  contentExtractor=new ContentExtractor(aConfiguration);
  directoryListener=new DirectoryListener(){
    @Override public void fileDeleted(    Configuration.CrawlLocation aFileSystemLocation,    Path aFile){
      try {
        String theFilename=aFile.toString();
        if (luceneIndexHandler.checkIfExists(theFilename)) {
          luceneIndexHandler.removeFromIndex(theFilename);
          aNotifier.showInformation("String_Node_Str" + aFile.getFileName());
        }
      }
 catch (      Exception e) {
        aNotifier.showError("String_Node_Str" + aFile.getFileName(),e);
      }
    }
    @Override public void fileFoundByCrawler(    Configuration.CrawlLocation aLocation,    Path aFile){
      fileCreatedOrModified(aLocation,aFile,false);
    }
    @Override public void fileCreatedOrModified(    Configuration.CrawlLocation aLocation,    Path aFile){
      fileCreatedOrModified(aLocation,aFile,true);
    }
    private void fileCreatedOrModified(    Configuration.CrawlLocation aLocation,    Path aFile,    boolean aShowInformation){
      String theFileName=aFile.toString();
      if (contentExtractor.supportsFile(theFileName)) {
        try {
          progressListener.newFileFound(theFileName);
          BasicFileAttributes theAttributes=Files.readAttributes(aFile,BasicFileAttributes.class);
          UpdateCheckResult theUpdateCheckResult=luceneIndexHandler.checkIfModified(theFileName,theAttributes.size());
          if (theUpdateCheckResult == UpdateCheckResult.UPDATED) {
            if (aShowInformation) {
              notifier.showInformation("String_Node_Str" + aFile.getFileName());
            }
            Content theContent=contentExtractor.extractContentFrom(aFile,theAttributes);
            if (theContent != null) {
              luceneIndexHandler.addToIndex(aLocation.getId(),theContent);
            }
          }
 else {
            LOGGER.info("String_Node_Str" + aFile + "String_Node_Str"+ theUpdateCheckResult);
          }
        }
 catch (        Exception e) {
          aNotifier.showError("String_Node_Str" + aFile.getFileName(),e);
        }
      }
    }
  }
;
  configurationUpdated(aConfiguration);
}