Program: 82501
Project: 82501
Buggy source:
@Override public void run(){
  try {
    Schema schema=null;
    schema=blurConnection.schema(tableName);
    if (schema != null && descriptor != null) {
      throw new NullReturnedException("String_Node_Str");
    }
    List<Family> columnDefs=getColumnDefinitions(schema);
    AnalyzerDefinition analyzerDefinition=descriptor.getAnalyzerDefinition();
    if (analyzerDefinition != null) {
      Map<String,ColumnFamilyDefinition> columnFamilyDefinitions=analyzerDefinition.getColumnFamilyDefinitions();
      ColumnDefinition analyzerDefaultDefinition=analyzerDefinition.getDefaultDefinition();
      if (columnFamilyDefinitions == null) {
        for (        Family family : columnDefs) {
          for (          Column column : family.getColumns()) {
            if (analyzerDefaultDefinition == null) {
              column.setAnalyzer("String_Node_Str");
            }
 else {
              column.setAnalyzer(analyzerDefaultDefinition.getAnalyzerClassName());
              column.setFullText(analyzerDefaultDefinition.isFullTextIndex());
            }
          }
        }
      }
 else {
        for (        Map.Entry<String,ColumnFamilyDefinition> describeEntry : columnFamilyDefinitions.entrySet()) {
          Family family=new Family(describeEntry.getKey());
          int familyIndex=columnDefs.indexOf(family);
          if (familyIndex == -1) {
            columnDefs.add(family);
          }
 else {
            family=columnDefs.get(familyIndex);
          }
          Map<String,ColumnDefinition> columnDefinitions=describeEntry.getValue().getColumnDefinitions();
          ColumnDefinition columnDefaultDefinition=describeEntry.getValue().getDefaultDefinition();
          if (columnDefinitions == null) {
            for (            Column column : family.getColumns()) {
              if (columnDefaultDefinition == null && analyzerDefaultDefinition == null) {
                column.setAnalyzer("String_Node_Str");
              }
 else               if (columnDefaultDefinition == null) {
                column.setAnalyzer(analyzerDefaultDefinition.getAnalyzerClassName());
                column.setFullText(analyzerDefaultDefinition.isFullTextIndex());
              }
 else {
                column.setAnalyzer(columnDefaultDefinition.getAnalyzerClassName());
                column.setFullText(columnDefaultDefinition.isFullTextIndex());
              }
            }
          }
 else {
            for (            Map.Entry<String,ColumnDefinition> columnDescription : columnDefinitions.entrySet()) {
              Column column=new Column(columnDescription.getKey());
              int columnIndex=family.getColumns().indexOf(column);
              if (columnIndex == -1) {
                family.getColumns().add(column);
              }
 else {
                column=family.getColumns().get(columnIndex);
              }
              column.setAnalyzer(columnDescription.getValue().getAnalyzerClassName());
              column.setFullText(columnDescription.getValue().isFullTextIndex());
            }
          }
        }
      }
    }
    this.database.updateTableSchema(this.tableId,new ObjectMapper().writeValueAsString(columnDefs),this.descriptor.getAnalyzerDefinition().getFullTextAnalyzerClassName());
  }
 catch (  BlurException e) {
    log.error("String_Node_Str" + tableName + "String_Node_Str",e);
  }
catch (  JsonProcessingException e) {
    log.error("String_Node_Str",e);
  }
catch (  DataAccessException e) {
    log.error("String_Node_Str",e);
  }
catch (  NullReturnedException e) {
    log.error(e.getMessage(),e);
  }
catch (  Exception e) {
    log.error("String_Node_Str",e);
  }
}

Fixed version (ground truth):
@Override public void run(){
  try {
    Schema schema=null;
    schema=blurConnection.schema(tableName);
    if (schema == null || descriptor == null) {
      throw new NullReturnedException("String_Node_Str");
    }
    List<Family> columnDefs=getColumnDefinitions(schema);
    AnalyzerDefinition analyzerDefinition=descriptor.getAnalyzerDefinition();
    if (analyzerDefinition != null) {
      Map<String,ColumnFamilyDefinition> columnFamilyDefinitions=analyzerDefinition.getColumnFamilyDefinitions();
      ColumnDefinition analyzerDefaultDefinition=analyzerDefinition.getDefaultDefinition();
      if (columnFamilyDefinitions == null) {
        for (        Family family : columnDefs) {
          for (          Column column : family.getColumns()) {
            if (analyzerDefaultDefinition == null) {
              column.setAnalyzer("String_Node_Str");
            }
 else {
              column.setAnalyzer(analyzerDefaultDefinition.getAnalyzerClassName());
              column.setFullText(analyzerDefaultDefinition.isFullTextIndex());
            }
          }
        }
      }
 else {
        for (        Map.Entry<String,ColumnFamilyDefinition> describeEntry : columnFamilyDefinitions.entrySet()) {
          Family family=new Family(describeEntry.getKey());
          int familyIndex=columnDefs.indexOf(family);
          if (familyIndex == -1) {
            columnDefs.add(family);
          }
 else {
            family=columnDefs.get(familyIndex);
          }
          Map<String,ColumnDefinition> columnDefinitions=describeEntry.getValue().getColumnDefinitions();
          ColumnDefinition columnDefaultDefinition=describeEntry.getValue().getDefaultDefinition();
          if (columnDefinitions == null) {
            for (            Column column : family.getColumns()) {
              if (columnDefaultDefinition == null && analyzerDefaultDefinition == null) {
                column.setAnalyzer("String_Node_Str");
              }
 else               if (columnDefaultDefinition == null) {
                column.setAnalyzer(analyzerDefaultDefinition.getAnalyzerClassName());
                column.setFullText(analyzerDefaultDefinition.isFullTextIndex());
              }
 else {
                column.setAnalyzer(columnDefaultDefinition.getAnalyzerClassName());
                column.setFullText(columnDefaultDefinition.isFullTextIndex());
              }
            }
          }
 else {
            for (            Map.Entry<String,ColumnDefinition> columnDescription : columnDefinitions.entrySet()) {
              Column column=new Column(columnDescription.getKey());
              int columnIndex=family.getColumns().indexOf(column);
              if (columnIndex == -1) {
                family.getColumns().add(column);
              }
 else {
                column=family.getColumns().get(columnIndex);
              }
              column.setAnalyzer(columnDescription.getValue().getAnalyzerClassName());
              column.setFullText(columnDescription.getValue().isFullTextIndex());
            }
          }
        }
      }
    }
    this.database.updateTableSchema(this.tableId,new ObjectMapper().writeValueAsString(columnDefs),this.descriptor.getAnalyzerDefinition().getFullTextAnalyzerClassName());
  }
 catch (  BlurException e) {
    log.error("String_Node_Str" + tableName + "String_Node_Str",e);
  }
catch (  JsonProcessingException e) {
    log.error("String_Node_Str",e);
  }
catch (  DataAccessException e) {
    log.error("String_Node_Str",e);
  }
catch (  NullReturnedException e) {
    log.error(e.getMessage(),e);
  }
catch (  Exception e) {
    log.error("String_Node_Str",e);
  }
}