Program: 131874
Project: 131874
Buggy source:
/** 
 * Creates an ETL processor by setting the configuration of each component.
 * @param iBeginBlocks List of Block configurations to execute at the beginning of processing
 * @param iSource Source component configuration
 * @param iExtractor Extractor component configuration
 * @param iTransformers List of Transformer configurations
 * @param iLoader Loader component configuration
 * @param iEndBlocks List of Block configurations to execute at the end of processing
 * @param iContext Execution Context
 */
public OETLProcessor parse(final Collection<ODocument> iBeginBlocks,final ODocument iSource,final ODocument iExtractor,final Collection<ODocument> iTransformers,final ODocument iLoader,final Collection<ODocument> iEndBlocks,final OBasicCommandContext iContext){
  if (iExtractor == null)   throw new IllegalArgumentException("String_Node_Str");
  context=iContext != null ? iContext : createDefaultContext();
  init();
  try {
    String name;
    beginBlocks=new ArrayList<OBlock>();
    if (iBeginBlocks != null)     for (    ODocument block : iBeginBlocks) {
      name=block.fieldNames()[0];
      final OBlock b=factory.getBlock(name);
      beginBlocks.add(b);
      configureComponent(b,(ODocument)block.field(name),iContext);
      b.execute();
    }
    if (iSource != null) {
      name=iSource.fieldNames()[0];
      source=factory.getSource(name);
      configureComponent(source,(ODocument)iSource.field(name),iContext);
    }
 else     source=factory.getSource("String_Node_Str");
    name=iExtractor.fieldNames()[0];
    extractor=factory.getExtractor(name);
    configureComponent(extractor,(ODocument)iExtractor.field(name),iContext);
    if (iLoader != null) {
      name=iLoader.fieldNames()[0];
      loader=factory.getLoader(name);
      configureComponent(loader,(ODocument)iLoader.field(name),iContext);
    }
 else     loader=factory.getLoader("String_Node_Str");
    transformers=new ArrayList<OTransformer>();
    if (iTransformers != null)     for (    ODocument t : iTransformers) {
      name=t.fieldNames()[0];
      final OTransformer tr=factory.getTransformer(name);
      transformers.add(tr);
      configureComponent(tr,(ODocument)t.field(name),iContext);
    }
    endBlocks=new ArrayList<OBlock>();
    if (iEndBlocks != null)     for (    ODocument block : iEndBlocks) {
      name=block.fieldNames()[0];
      final OBlock b=factory.getBlock(name);
      endBlocks.add(b);
      configureComponent(b,(ODocument)block.field(name),iContext);
    }
  }
 catch (  Exception e) {
    throw new OConfigurationException("String_Node_Str",e);
  }
  return this;
}

Fixed version (ground truth):
/** 
 * Creates an ETL processor by setting the configuration of each component.
 * @param iBeginBlocks List of Block configurations to execute at the beginning of processing
 * @param iSource Source component configuration
 * @param iExtractor Extractor component configuration
 * @param iTransformers List of Transformer configurations
 * @param iLoader Loader component configuration
 * @param iEndBlocks List of Block configurations to execute at the end of processing
 * @param iContext Execution Context
 * @return Current OETProcessor instance
 */
public OETLProcessor parse(final Collection<ODocument> iBeginBlocks,final ODocument iSource,final ODocument iExtractor,final Collection<ODocument> iTransformers,final ODocument iLoader,final Collection<ODocument> iEndBlocks,final OBasicCommandContext iContext){
  if (iExtractor == null)   throw new IllegalArgumentException("String_Node_Str");
  context=iContext != null ? iContext : createDefaultContext();
  init();
  try {
    String name;
    beginBlocks=new ArrayList<OBlock>();
    if (iBeginBlocks != null)     for (    ODocument block : iBeginBlocks) {
      name=block.fieldNames()[0];
      final OBlock b=factory.getBlock(name);
      beginBlocks.add(b);
      configureComponent(b,(ODocument)block.field(name),iContext);
      b.execute();
    }
    if (iSource != null) {
      name=iSource.fieldNames()[0];
      source=factory.getSource(name);
      configureComponent(source,(ODocument)iSource.field(name),iContext);
    }
 else     source=factory.getSource("String_Node_Str");
    name=iExtractor.fieldNames()[0];
    extractor=factory.getExtractor(name);
    configureComponent(extractor,(ODocument)iExtractor.field(name),iContext);
    if (iLoader != null) {
      name=iLoader.fieldNames()[0];
      loader=factory.getLoader(name);
      configureComponent(loader,(ODocument)iLoader.field(name),iContext);
    }
 else     loader=factory.getLoader("String_Node_Str");
    transformers=new ArrayList<OTransformer>();
    if (iTransformers != null)     for (    ODocument t : iTransformers) {
      name=t.fieldNames()[0];
      final OTransformer tr=factory.getTransformer(name);
      transformers.add(tr);
      configureComponent(tr,(ODocument)t.field(name),iContext);
    }
    endBlocks=new ArrayList<OBlock>();
    if (iEndBlocks != null)     for (    ODocument block : iEndBlocks) {
      name=block.fieldNames()[0];
      final OBlock b=factory.getBlock(name);
      endBlocks.add(b);
      configureComponent(b,(ODocument)block.field(name),iContext);
    }
  }
 catch (  Exception e) {
    throw new OConfigurationException("String_Node_Str",e);
  }
  return this;
}