Program: 4894
Project: 4894
Buggy source:
/** 
 * This method overrides FileManager.loadSettingsBlocking(), though it calls the super method to load up the shared file DB.  Then, it processes these files and annotates them automatically as apropos. TODO2: Eventually we will think that its too much of a burden to have this thread be blocking in which case we will have to  have the load thread also handle the reloading of the meta-data. Question: Do we really want to reload the meta-data whenever a we want to update the file information?? It depends on how we want to  handle the meta-data and its relation to the file system
 */
protected void loadSettingsBlocking(boolean notifyOnClear){
  super.loadSettingsBlocking(notifyOnClear);
  if (Thread.currentThread().isInterrupted())   return;
synchronized (metaLocker) {
    if (!initialized) {
      fileToHash.clear();
      createFileToHashMaps();
      SchemaReplyCollectionMapper mapper=SchemaReplyCollectionMapper.instance();
      LimeXMLSchemaRepository schemaRepository=LimeXMLSchemaRepository.instance();
      if (Thread.currentThread().isInterrupted())       return;
      String[] schemas=schemaRepository.getAvailableSchemaURIs();
      int len=schemas.length;
      LimeXMLReplyCollection collection;
      for (int i=0; (i < len) && !Thread.currentThread().isInterrupted(); i++) {
        String s=LimeXMLSchema.getDisplayString(schemas[i]);
        if (s.equalsIgnoreCase("String_Node_Str")) {
          collection=new LimeXMLReplyCollection(fileToHash.keySet(),schemas[i],this,true);
        }
 else         collection=new LimeXMLReplyCollection(fileToHash.keySet(),schemas[i],this,false);
        mapper.add(schemas[i],collection);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * This method overrides FileManager.loadSettingsBlocking(), though it calls the super method to load up the shared file DB.  Then, it processes these files and annotates them automatically as apropos. TODO2: Eventually we will think that its too much of a burden to have this thread be blocking in which case we will have to  have the load thread also handle the reloading of the meta-data. Question: Do we really want to reload the meta-data whenever a we want to update the file information?? It depends on how we want to  handle the meta-data and its relation to the file system
 */
protected void loadSettingsBlocking(boolean notifyOnClear){
  super.loadSettingsBlocking(notifyOnClear);
  if (Thread.currentThread().isInterrupted())   return;
synchronized (metaLocker) {
    if (!initialized) {
      fileToHash.clear();
      createFileToHashMaps();
      SchemaReplyCollectionMapper mapper=SchemaReplyCollectionMapper.instance();
      LimeXMLSchemaRepository schemaRepository=LimeXMLSchemaRepository.instance();
      if (Thread.currentThread().isInterrupted())       return;
      String[] schemas=schemaRepository.getAvailableSchemaURIs();
      int len=schemas.length;
      LimeXMLReplyCollection collection;
      for (int i=0; (i < len) && !Thread.currentThread().isInterrupted(); i++) {
        String s=LimeXMLSchema.getDisplayString(schemas[i]);
        collection=new LimeXMLReplyCollection(fileToHash,schemas[i],this,s.equalsIgnoreCase("String_Node_Str"));
        mapper.add(schemas[i],collection);
      }
    }
  }
}