Program: 82116
Project: 82116
Buggy source:
@Override public void initialize(Configuration conf,Properties tbl) throws SerDeException {
  String table=tbl.getProperty(TABLE);
  nullCheck(TABLE,table);
  _family=tbl.getProperty(FAMILY);
  nullCheck(FAMILY,_family);
  BlurConfiguration configuration;
  try {
    configuration=new BlurConfiguration();
    String zkConnectionStr=tbl.getProperty(ZK);
    nullCheck(ZK,zkConnectionStr);
    configuration.set(ZK,zkConnectionStr);
  }
 catch (  IOException e) {
    throw new SerDeException(e);
  }
  Iface client=BlurClient.getClient(configuration);
  Schema schema;
  try {
    List<String> tableList=client.tableList();
    if (!tableList.contains(table)) {
      throw new SerDeException("String_Node_Str" + table + "String_Node_Str");
    }
    if (conf != null) {
      TableDescriptor tableDescriptor=client.describe(table);
      Map<String,String> tableProperties=tableDescriptor.getTableProperties();
      if (tableProperties != null) {
        String workingPath=tableProperties.get(BlurConstants.BLUR_BULK_UPDATE_WORKING_PATH);
        if (conf != null && workingPath != null) {
          if (!conf.getBoolean(BLUR_MR_UPDATE_DISABLED,false)) {
            conf.set(BlurConstants.BLUR_BULK_UPDATE_WORKING_PATH,workingPath);
          }
        }
      }
      BlurOutputFormat.setTableDescriptor(conf,tableDescriptor);
      conf.set(BLUR_CONTROLLER_CONNECTION_STR,getControllerConnectionStr(client));
    }
    schema=client.schema(table);
  }
 catch (  BlurException e) {
    throw new SerDeException(e);
  }
catch (  TException e) {
    throw new SerDeException(e);
  }
catch (  IOException e) {
    throw new SerDeException(e);
  }
  Map<String,ColumnDefinition> columns=schema.getFamilies().get(_family);
  if (columns == null) {
    throw new SerDeException("String_Node_Str" + _family + "String_Node_Str"+ table+ "String_Node_Str");
  }
  _schema=new HashMap<String,ColumnDefinition>();
  for (  ColumnDefinition columnDefinition : columns.values()) {
    String subColumnName=columnDefinition.getSubColumnName();
    if (subColumnName == null) {
      _schema.put(columnDefinition.getColumnName(),columnDefinition);
    }
  }
  _columnNameResolver=new BlurColumnNameResolver(_schema.values());
  BlurObjectInspectorGenerator blurObjectInspectorGenerator=new BlurObjectInspectorGenerator(_schema.values(),_columnNameResolver);
  _objectInspector=blurObjectInspectorGenerator.getObjectInspector();
  _columnNames=blurObjectInspectorGenerator.getColumnNames();
  _columnTypes=blurObjectInspectorGenerator.getColumnTypes();
  _serializer=new BlurSerializer(_schema,_columnNameResolver);
}

Fixed version (ground truth):
@Override public void initialize(Configuration conf,Properties tbl) throws SerDeException {
  String table=tbl.getProperty(TABLE);
  nullCheck(TABLE,table);
  _family=tbl.getProperty(FAMILY);
  nullCheck(FAMILY,_family);
  BlurConfiguration configuration;
  String zkConnectionStr;
  try {
    configuration=new BlurConfiguration();
    zkConnectionStr=tbl.getProperty(ZK);
    nullCheck(ZK,zkConnectionStr);
    configuration.set(ZK,zkConnectionStr);
  }
 catch (  IOException e) {
    throw new SerDeException(e);
  }
  Iface client=BlurClient.getClient(configuration);
  Schema schema;
  try {
    List<String> tableList=client.tableList();
    if (!tableList.contains(table)) {
      LOG.warn("String_Node_Str",table,zkConnectionStr);
      _objectInspector=new NullStructSerDe.NullStructSerDeObjectInspector();
      return;
    }
    if (conf != null) {
      TableDescriptor tableDescriptor=client.describe(table);
      Map<String,String> tableProperties=tableDescriptor.getTableProperties();
      if (tableProperties != null) {
        String workingPath=tableProperties.get(BlurConstants.BLUR_BULK_UPDATE_WORKING_PATH);
        if (conf != null && workingPath != null) {
          if (!conf.getBoolean(BLUR_MR_UPDATE_DISABLED,false)) {
            conf.set(BlurConstants.BLUR_BULK_UPDATE_WORKING_PATH,workingPath);
          }
        }
      }
      BlurOutputFormat.setTableDescriptor(conf,tableDescriptor);
      conf.set(BLUR_CONTROLLER_CONNECTION_STR,getControllerConnectionStr(client));
    }
    schema=client.schema(table);
  }
 catch (  BlurException e) {
    throw new SerDeException(e);
  }
catch (  TException e) {
    throw new SerDeException(e);
  }
catch (  IOException e) {
    throw new SerDeException(e);
  }
  Map<String,ColumnDefinition> columns=schema.getFamilies().get(_family);
  if (columns == null) {
    throw new SerDeException("String_Node_Str" + _family + "String_Node_Str"+ table+ "String_Node_Str");
  }
  _schema=new HashMap<String,ColumnDefinition>();
  for (  ColumnDefinition columnDefinition : columns.values()) {
    String subColumnName=columnDefinition.getSubColumnName();
    if (subColumnName == null) {
      _schema.put(columnDefinition.getColumnName(),columnDefinition);
    }
  }
  _columnNameResolver=new BlurColumnNameResolver(_schema.values());
  BlurObjectInspectorGenerator blurObjectInspectorGenerator=new BlurObjectInspectorGenerator(_schema.values(),_columnNameResolver);
  _objectInspector=blurObjectInspectorGenerator.getObjectInspector();
  _columnNames=blurObjectInspectorGenerator.getColumnNames();
  _columnTypes=blurObjectInspectorGenerator.getColumnTypes();
  _serializer=new BlurSerializer(_schema,_columnNameResolver);
}