Program: 100711
Project: 100711
Buggy source:
/** 
 * Check if the given Attributes need to be excluded.
 * @param atts attributes
 * @param extProps {@code props} attribute specializations
 * @return true if any one of attributes 'audience', 'platform', 'product','otherprops', 'props', or 'print' was excluded.
 */
public boolean needExclude(final Attributes atts,final String[][] extProps){
  if (filterMap == null || filterMap.isEmpty()) {
    return false;
  }
  for (  final String attr : PROFILE_ATTRIBUTES) {
    final String value=atts.getValue(attr);
    if (value != null) {
      final Map<String,List<String>> groups=getGroups(value);
      for (      Map.Entry<String,List<String>> group : groups.entrySet()) {
        if (group.getKey() != null) {
          if (extCheckExclude(new String[]{attr,group.getKey()},group.getValue())) {
            return true;
          }
        }
 else {
          if (extCheckExclude(new String[]{attr},group.getValue())) {
            return true;
          }
        }
      }
    }
  }
  if (extProps != null && extProps.length != 0) {
    for (    final String[] propList : extProps) {
      int propListIndex=propList.length - 1;
      final String propName=propList[propListIndex];
      String propValue=atts.getValue(propName);
      while (propValue == null && propListIndex > 0) {
        propListIndex--;
        propValue=getLabelValue(propName,atts.getValue(propList[propListIndex]));
      }
      if (propValue != null && extCheckExclude(propList,Arrays.asList(propValue.split("String_Node_Str")))) {
        return true;
      }
    }
  }
  return false;
}

Fixed version (ground truth):
/** 
 * Check if the given Attributes need to be excluded.
 * @param atts attributes
 * @param extProps {@code props} attribute specializations
 * @return true if any one of attributes 'audience', 'platform', 'product','otherprops', 'props', or 'print' was excluded.
 */
public boolean needExclude(final Attributes atts,final String[][] extProps){
  if (filterMap.isEmpty()) {
    return false;
  }
  for (  final String attr : PROFILE_ATTRIBUTES) {
    final String value=atts.getValue(attr);
    if (value != null) {
      final Map<String,List<String>> groups=getGroups(value);
      for (      Map.Entry<String,List<String>> group : groups.entrySet()) {
        if (group.getKey() != null) {
          if (extCheckExclude(new String[]{attr,group.getKey()},group.getValue())) {
            return true;
          }
        }
 else {
          if (extCheckExclude(new String[]{attr},group.getValue())) {
            return true;
          }
        }
      }
    }
  }
  if (extProps != null && extProps.length != 0) {
    for (    final String[] propList : extProps) {
      int propListIndex=propList.length - 1;
      final String propName=propList[propListIndex];
      String propValue=atts.getValue(propName);
      while (propValue == null && propListIndex > 0) {
        propListIndex--;
        propValue=getLabelValue(propName,atts.getValue(propList[propListIndex]));
      }
      if (propValue != null && extCheckExclude(propList,Arrays.asList(propValue.split("String_Node_Str")))) {
        return true;
      }
    }
  }
  return false;
}