Program: 82420
Project: 82420
Buggy source:
public static TableContext create(TableDescriptor tableDescriptor){
  if (tableDescriptor == null) {
    throw new NullPointerException("String_Node_Str");
  }
  String name=tableDescriptor.getName();
  if (name == null) {
    throw new NullPointerException("String_Node_Str");
  }
  String tableUri=tableDescriptor.getTableUri();
  if (tableUri == null) {
    throw new NullPointerException("String_Node_Str");
  }
  TableContext tableContext=cache.get(name);
  if (tableContext != null) {
    return tableContext;
  }
  LOG.info("String_Node_Str",name);
  Configuration configuration=getSystemConfiguration();
  BlurConfiguration blurConfiguration=getSystemBlurConfiguration();
  Map<String,String> tableProperties=tableDescriptor.getTableProperties();
  if (tableProperties != null) {
    for (    Entry<String,String> prop : tableProperties.entrySet()) {
      configuration.set(prop.getKey(),prop.getValue());
      blurConfiguration.set(prop.getKey(),prop.getValue());
    }
  }
  tableContext=new TableContext();
  tableContext.configuration=configuration;
  tableContext.blurConfiguration=blurConfiguration;
  tableContext.tablePath=new Path(tableUri);
  tableContext.walTablePath=new Path(tableContext.tablePath,LOGS);
  tableContext.defaultFieldName=SUPER;
  tableContext.table=name;
  tableContext.descriptor=tableDescriptor;
  tableContext.timeBetweenCommits=configuration.getLong(BLUR_SHARD_TIME_BETWEEN_COMMITS,60000);
  tableContext.timeBetweenRefreshs=configuration.getLong(BLUR_SHARD_TIME_BETWEEN_REFRESHS,5000);
  tableContext.defaultPrimeDocTerm=new Term("String_Node_Str","String_Node_Str");
  tableContext.defaultScoreType=ScoreType.SUPER;
  boolean strict=tableDescriptor.isStrictTypes();
  String defaultMissingFieldType=tableDescriptor.getDefaultMissingFieldType();
  boolean defaultMissingFieldLessIndexing=tableDescriptor.isDefaultMissingFieldLessIndexing();
  Map<String,String> defaultMissingFieldProps=emptyIfNull(tableDescriptor.getDefaultMissingFieldProps());
  Path storagePath=new Path(tableContext.tablePath,TYPES);
  try {
    HdfsFieldManager hdfsFieldManager=new HdfsFieldManager(SUPER,new NoStopWordStandardAnalyzer(),storagePath,configuration,strict,defaultMissingFieldType,defaultMissingFieldLessIndexing,defaultMissingFieldProps);
    loadCustomTypes(tableContext,blurConfiguration,hdfsFieldManager);
    hdfsFieldManager.load();
    tableContext.fieldManager=hdfsFieldManager;
  }
 catch (  IOException e) {
    throw new RuntimeException(e);
  }
  Class<?> c1=configuration.getClass(BLUR_SHARD_INDEX_DELETION_POLICY_MAXAGE,KeepOnlyLastCommitDeletionPolicy.class);
  tableContext.indexDeletionPolicy=(IndexDeletionPolicy)configure(ReflectionUtils.newInstance(c1,configuration),tableContext);
  Class<?> c2=configuration.getClass(BLUR_SHARD_INDEX_SIMILARITY,DefaultSimilarity.class);
  tableContext.similarity=(Similarity)configure(ReflectionUtils.newInstance(c2,configuration),tableContext);
  cache.put(name,tableContext);
  return tableContext;
}

Fixed version (ground truth):
public static TableContext create(TableDescriptor tableDescriptor){
  if (tableDescriptor == null) {
    throw new NullPointerException("String_Node_Str");
  }
  String name=tableDescriptor.getName();
  if (name == null) {
    throw new NullPointerException("String_Node_Str");
  }
  String tableUri=tableDescriptor.getTableUri();
  if (tableUri == null) {
    throw new NullPointerException("String_Node_Str");
  }
  TableContext tableContext=cache.get(name);
  if (tableContext != null) {
    return tableContext;
  }
  LOG.info("String_Node_Str",name);
  Configuration configuration=getSystemConfiguration();
  BlurConfiguration blurConfiguration=getSystemBlurConfiguration();
  Map<String,String> tableProperties=tableDescriptor.getTableProperties();
  if (tableProperties != null) {
    for (    Entry<String,String> prop : tableProperties.entrySet()) {
      configuration.set(prop.getKey(),prop.getValue());
      blurConfiguration.set(prop.getKey(),prop.getValue());
    }
  }
  tableContext=new TableContext();
  tableContext.configuration=configuration;
  tableContext.blurConfiguration=blurConfiguration;
  tableContext.tablePath=new Path(tableUri);
  tableContext.walTablePath=new Path(tableContext.tablePath,LOGS);
  tableContext.defaultFieldName=SUPER;
  tableContext.table=name;
  tableContext.descriptor=tableDescriptor;
  tableContext.timeBetweenCommits=configuration.getLong(BLUR_SHARD_TIME_BETWEEN_COMMITS,60000);
  tableContext.timeBetweenRefreshs=configuration.getLong(BLUR_SHARD_TIME_BETWEEN_REFRESHS,5000);
  tableContext.defaultPrimeDocTerm=new Term("String_Node_Str","String_Node_Str");
  tableContext.defaultScoreType=ScoreType.SUPER;
  boolean strict=tableDescriptor.isStrictTypes();
  String defaultMissingFieldType=tableDescriptor.getDefaultMissingFieldType();
  boolean defaultMissingFieldLessIndexing=tableDescriptor.isDefaultMissingFieldLessIndexing();
  Map<String,String> defaultMissingFieldProps=emptyIfNull(tableDescriptor.getDefaultMissingFieldProps());
  Path storagePath=new Path(tableContext.tablePath,TYPES);
  try {
    HdfsFieldManager hdfsFieldManager=new HdfsFieldManager(SUPER,new NoStopWordStandardAnalyzer(),storagePath,configuration,strict,defaultMissingFieldType,defaultMissingFieldLessIndexing,defaultMissingFieldProps);
    loadCustomTypes(tableContext,blurConfiguration,hdfsFieldManager);
    hdfsFieldManager.loadFromStorage();
    tableContext.fieldManager=hdfsFieldManager;
  }
 catch (  IOException e) {
    throw new RuntimeException(e);
  }
  Class<?> c1=configuration.getClass(BLUR_SHARD_INDEX_DELETION_POLICY_MAXAGE,KeepOnlyLastCommitDeletionPolicy.class);
  tableContext.indexDeletionPolicy=(IndexDeletionPolicy)configure(ReflectionUtils.newInstance(c1,configuration),tableContext);
  Class<?> c2=configuration.getClass(BLUR_SHARD_INDEX_SIMILARITY,DefaultSimilarity.class);
  tableContext.similarity=(Similarity)configure(ReflectionUtils.newInstance(c2,configuration),tableContext);
  cache.put(name,tableContext);
  return tableContext;
}