Program: 161290
Project: 161290
Buggy source:
@Override public Collection<Throwable> doVcfToVcf(final String inputName,final VcfIterator in,final VariantContextWriter out) throws IOException {
  final VCFHeader header=in.getHeader();
  final Pedigree pedigree=Pedigree.readPedigree(header);
  if (pedigree.isEmpty()) {
    throw new IOException("String_Node_Str" + inputName + "String_Node_Str");
  }
  final Set<Pedigree.Person> caseSamples=pedigree.getAffected();
  final Set<Pedigree.Person> controlSamples=pedigree.getUnaffected();
  try {
    final VCFHeader h2=addMetaData(new VCFHeader(header));
    final VCFInfoHeaderLine mafCasInfoHeader=new VCFInfoHeaderLine("String_Node_Str",VCFHeaderLineCount.A,VCFHeaderLineType.Float,"String_Node_Str");
    final VCFInfoHeaderLine mafControlsInfoHeader=new VCFInfoHeaderLine("String_Node_Str",VCFHeaderLineCount.A,VCFHeaderLineType.Float,"String_Node_Str");
    final VCFFilterHeaderLine filterCasHeader=new VCFFilterHeaderLine(mafCasInfoHeader.getID(),"String_Node_Str" + super.maxMAF);
    final VCFFilterHeaderLine filterControlsHeader=new VCFFilterHeaderLine(mafControlsInfoHeader.getID(),"String_Node_Str" + super.maxMAF);
    final VCFFilterHeaderLine filterCaseOrControlsHeader=new VCFFilterHeaderLine("String_Node_Str","String_Node_Str" + super.maxMAF);
    h2.addMetaDataLine(mafCasInfoHeader);
    h2.addMetaDataLine(mafControlsInfoHeader);
    h2.addMetaDataLine(filterCasHeader);
    h2.addMetaDataLine(filterControlsHeader);
    h2.addMetaDataLine(filterCaseOrControlsHeader);
    final SAMSequenceDictionaryProgress progess=new SAMSequenceDictionaryProgress(header.getSequenceDictionary());
    out.writeHeader(h2);
    while (in.hasNext() && !out.checkError()) {
      final VariantContext ctx=progess.watch(in.next());
      final VariantContextBuilder vcb=new VariantContextBuilder(ctx);
      final List<Double> mafCasList=new ArrayList<>();
      final List<Double> mafCtrlList=new ArrayList<>();
      boolean set_max_maf_cas=true;
      boolean set_max_maf_control=true;
      boolean seen_data=false;
      for (      final Allele observed_alt : ctx.getAlternateAlleles()) {
        for (int pop=0; pop < 2; ++pop) {
          final MafCalculator mafCalculator=new MafCalculator(observed_alt,ctx.getContig());
          for (          final Pedigree.Person p : (pop == CASE_POP ? caseSamples : controlSamples)) {
            final Genotype genotype=ctx.getGenotype(p.getId());
            mafCalculator.add(genotype,p.isMale());
          }
          if (!mafCalculator.isEmpty()) {
            seen_data=true;
            final double maf=mafCalculator.getMaf();
            if (pop == CASE_POP) {
              mafCasList.add(maf);
              if (maf <= super.maxMAF)               set_max_maf_cas=false;
            }
 else {
              mafCtrlList.add(maf);
              if (maf <= super.maxMAF)               set_max_maf_control=false;
            }
          }
 else {
            if (pop == CASE_POP) {
              mafCasList.add(-1.0);
            }
 else {
              mafCtrlList.add(-1.0);
            }
          }
        }
      }
      vcb.attribute(mafCasInfoHeader.getID(),mafCasList);
      vcb.attribute(mafControlsInfoHeader.getID(),mafCtrlList);
      if (seen_data) {
        if (set_max_maf_cas)         vcb.filter(filterCasHeader.getID());
        if (set_max_maf_control)         vcb.filter(filterControlsHeader.getID());
        if (set_max_maf_cas || set_max_maf_control) {
          vcb.filter(filterCaseOrControlsHeader.getID());
        }
      }
      out.add(vcb.make());
    }
    progess.finish();
    LOG.info("String_Node_Str");
    return RETURN_OK;
  }
 catch (  Exception err) {
    return wrapException(err);
  }
 finally {
    CloserUtil.close(in);
  }
}

Fixed version (ground truth):
@Override public Collection<Throwable> doVcfToVcf(final String inputName,final VcfIterator in,final VariantContextWriter out) throws IOException {
  final VCFHeader header=in.getHeader();
  final Pedigree pedigree=Pedigree.readPedigree(header);
  if (pedigree.isEmpty()) {
    throw new IOException("String_Node_Str" + inputName + "String_Node_Str");
  }
  final Set<Pedigree.Person> caseSamples=pedigree.getAffected();
  final Set<Pedigree.Person> controlSamples=pedigree.getUnaffected();
  try {
    final VCFHeader h2=addMetaData(new VCFHeader(header));
    final VCFInfoHeaderLine mafCasInfoHeader=new VCFInfoHeaderLine("String_Node_Str",VCFHeaderLineCount.A,VCFHeaderLineType.Float,"String_Node_Str");
    final VCFInfoHeaderLine mafControlsInfoHeader=new VCFInfoHeaderLine("String_Node_Str",VCFHeaderLineCount.A,VCFHeaderLineType.Float,"String_Node_Str");
    final VCFFilterHeaderLine filterCasHeader=new VCFFilterHeaderLine(mafCasInfoHeader.getID(),"String_Node_Str" + super.maxMAF);
    final VCFFilterHeaderLine filterControlsHeader=new VCFFilterHeaderLine(mafControlsInfoHeader.getID(),"String_Node_Str" + super.maxMAF);
    final VCFFilterHeaderLine filterCaseOrControlsHeader=new VCFFilterHeaderLine("String_Node_Str","String_Node_Str" + super.maxMAF);
    h2.addMetaDataLine(mafCasInfoHeader);
    h2.addMetaDataLine(mafControlsInfoHeader);
    h2.addMetaDataLine(filterCasHeader);
    h2.addMetaDataLine(filterControlsHeader);
    h2.addMetaDataLine(filterCaseOrControlsHeader);
    final SAMSequenceDictionaryProgress progess=new SAMSequenceDictionaryProgress(header.getSequenceDictionary());
    out.writeHeader(h2);
    while (in.hasNext() && !out.checkError()) {
      final VariantContext ctx=progess.watch(in.next());
      final VariantContextBuilder vcb=new VariantContextBuilder(ctx);
      final List<Double> mafCasList=new ArrayList<>();
      final List<Double> mafCtrlList=new ArrayList<>();
      boolean set_max_maf_cas=true;
      boolean set_max_maf_control=true;
      boolean seen_data=false;
      for (      final Allele observed_alt : ctx.getAlternateAlleles()) {
        for (int pop=0; pop < 2; ++pop) {
          final MafCalculator mafCalculator=new MafCalculator(observed_alt,ctx.getContig());
          for (          final Pedigree.Person p : (pop == CASE_POP ? caseSamples : controlSamples)) {
            final Genotype genotype=ctx.getGenotype(p.getId());
            mafCalculator.add(genotype,p.isMale());
          }
          if (!mafCalculator.isEmpty()) {
            seen_data=true;
            final double maf=mafCalculator.getMaf();
            if (pop == CASE_POP) {
              mafCasList.add(maf);
              if (maf <= super.maxMAF)               set_max_maf_cas=false;
            }
 else {
              mafCtrlList.add(maf);
              if (maf <= super.maxMAF)               set_max_maf_control=false;
            }
          }
 else {
            if (pop == CASE_POP) {
              mafCasList.add(-1.0);
              set_max_maf_cas=false;
            }
 else {
              mafCtrlList.add(-1.0);
              set_max_maf_control=false;
            }
          }
        }
      }
      vcb.attribute(mafCasInfoHeader.getID(),mafCasList);
      vcb.attribute(mafControlsInfoHeader.getID(),mafCtrlList);
      if (seen_data) {
        if (set_max_maf_cas)         vcb.filter(filterCasHeader.getID());
        if (set_max_maf_control)         vcb.filter(filterControlsHeader.getID());
        if (set_max_maf_cas || set_max_maf_control) {
          vcb.filter(filterCaseOrControlsHeader.getID());
        }
      }
      out.add(vcb.make());
    }
    progess.finish();
    LOG.info("String_Node_Str");
    return RETURN_OK;
  }
 catch (  Exception err) {
    return wrapException(err);
  }
 finally {
    CloserUtil.close(in);
  }
}