Program: 96695
Project: 96695
Buggy source:
public static boolean areApplicabilityTagsInvalid(String wordml,BranchId branch,HashCollection<String,String> validFeatureValues){
  Matcher matcher=FULL_PATTERN.matcher(wordml);
  Stack<ApplicabilityBlock> applicabilityBlocks=new Stack<>();
  int applicBlockCount=0;
  while (matcher.find()) {
    String beginFeature=matcher.group(1) != null ? WordCoreUtil.textOnly(matcher.group(1)) : null;
    String beginConfiguration=matcher.group(26) != null ? WordCoreUtil.textOnly(matcher.group(26)) : null;
    String endFeature=matcher.group(12) != null ? WordCoreUtil.textOnly(matcher.group(12)) : null;
    String endConfiguration=matcher.group(43) != null ? WordCoreUtil.textOnly(matcher.group(43)) : null;
    if (beginFeature != null && beginFeature.toLowerCase().contains(FEATUREAPP)) {
      applicBlockCount+=1;
      applicabilityBlocks.add(createApplicabilityBlock(ApplicabilityType.Feature,beginFeature));
    }
 else     if (beginConfiguration != null && beginConfiguration.toLowerCase().contains(CONFIGAPP)) {
      applicBlockCount+=1;
      applicabilityBlocks.add(createApplicabilityBlock(ApplicabilityType.Configuration,beginConfiguration));
    }
 else     if ((endFeature != null && endFeature.toLowerCase().contains(FEATUREAPP))) {
      applicBlockCount-=1;
      if (isInvalidFeatureBlock(applicabilityBlocks.pop(),matcher,branch,validFeatureValues)) {
        return true;
      }
    }
 else     if ((endConfiguration != null && endConfiguration.toLowerCase().contains(CONFIGAPP))) {
      applicBlockCount-=1;
      if (isInvalidConfigurationBlock(applicabilityBlocks.pop(),matcher)) {
        return true;
      }
    }
  }
  if (applicBlockCount != 0) {
    return true;
  }
  return false;
}

Fixed version (ground truth):
public static boolean areApplicabilityTagsInvalid(String wordml,BranchId branch,HashCollection<String,String> validFeatureValues){
  Matcher matcher=FULL_PATTERN.matcher(wordml);
  Stack<ApplicabilityBlock> applicabilityBlocks=new Stack<>();
  int applicBlockCount=0;
  while (matcher.find()) {
    String beginFeature=matcher.group(1) != null ? WordCoreUtil.textOnly(matcher.group(1)) : null;
    String beginConfiguration=matcher.group(26) != null ? WordCoreUtil.textOnly(matcher.group(26)) : null;
    String endFeature=matcher.group(12) != null ? WordCoreUtil.textOnly(matcher.group(12)) : null;
    String endConfiguration=matcher.group(43) != null ? WordCoreUtil.textOnly(matcher.group(43)) : null;
    if (beginFeature != null && beginFeature.toLowerCase().contains(FEATUREAPP)) {
      applicBlockCount+=1;
      applicabilityBlocks.add(createApplicabilityBlock(ApplicabilityType.Feature,beginFeature));
    }
 else     if (beginConfiguration != null && beginConfiguration.toLowerCase().contains(CONFIGAPP)) {
      applicBlockCount+=1;
      applicabilityBlocks.add(createApplicabilityBlock(ApplicabilityType.Configuration,beginConfiguration));
    }
 else     if ((endFeature != null && endFeature.toLowerCase().contains(FEATUREAPP))) {
      applicBlockCount-=1;
      if (applicabilityBlocks.isEmpty()) {
        return true;
      }
      if (isInvalidFeatureBlock(applicabilityBlocks.pop(),matcher,branch,validFeatureValues)) {
        return true;
      }
    }
 else     if ((endConfiguration != null && endConfiguration.toLowerCase().contains(CONFIGAPP))) {
      applicBlockCount-=1;
      if (applicabilityBlocks.isEmpty()) {
        return true;
      }
      if (isInvalidConfigurationBlock(applicabilityBlocks.pop(),matcher)) {
        return true;
      }
    }
  }
  if (applicBlockCount != 0) {
    return true;
  }
  return false;
}