Program: 121182
Project: 121182
Buggy source:
/** 
 * bqian create the correct TypeProcessor according to the type.
 * @return
 */
private IRepositoryTypeProcessor createTypeProcessor(){
  for (  IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
    IRepositoryTypeProcessor processor=handler.getRepositoryTypeProcessor(repositoryType);
    if (processor != null) {
      return processor;
    }
  }
  if (type == null && repositoryTypes != null) {
    return new MetadataMultiTypeProcessor(repositoryTypes);
  }
  if (type == ERepositoryObjectType.PROCESS) {
    return new JobTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA) {
    return new RepositoryTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_CON_TABLE) {
    return new SchemaTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_CON_QUERY) {
    return new QueryTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_SAP_FUNCTION) {
    return new SAPFunctionProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.CONTEXT) {
    return new ContextTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_HEADER_FOOTER) {
    return new HeaderFooterTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_VALIDATION_RULES) {
    return new ValidationRuleTypeProcessor(repositoryType);
  }
  throw new IllegalArgumentException(Messages.getString("String_Node_Str",type));
}

Fixed version (ground truth):
/** 
 * bqian create the correct TypeProcessor according to the type.
 * @return
 */
private IRepositoryTypeProcessor createTypeProcessor(){
  for (  IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
    IRepositoryTypeProcessor processor=handler.getRepositoryTypeProcessor(repositoryType);
    if (processor != null) {
      return processor;
    }
  }
  if (repositoryType != null && repositoryType.contains("String_Node_Str")) {
    String[] repTypes=repositoryType.split("String_Node_Str");
    IRepositoryTypeProcessor hadoopTypeProcessor=getHadoopSubMultiRepTypeProcessor(repTypes);
    if (hadoopTypeProcessor != null) {
      return hadoopTypeProcessor;
    }
  }
  if (type == null && repositoryTypes != null) {
    return new MetadataMultiTypeProcessor(repositoryTypes);
  }
  if (type == ERepositoryObjectType.PROCESS) {
    return new JobTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA) {
    return new RepositoryTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_CON_TABLE) {
    return new SchemaTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_CON_QUERY) {
    return new QueryTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_SAP_FUNCTION) {
    return new SAPFunctionProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.CONTEXT) {
    return new ContextTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_HEADER_FOOTER) {
    return new HeaderFooterTypeProcessor(repositoryType);
  }
  if (type == ERepositoryObjectType.METADATA_VALIDATION_RULES) {
    return new ValidationRuleTypeProcessor(repositoryType);
  }
  throw new IllegalArgumentException(Messages.getString("String_Node_Str",type));
}