Program: 15356
Project: 15356
Buggy source:
public static UserPostListingURL parse(Uri uri){
  Integer limit=null;
  String before=null, after=null;
  for (  final String parameterKey : General.getUriQueryParameterNames(uri)) {
    if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      after=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      before=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      try {
        limit=Integer.parseInt(uri.getQueryParameter(parameterKey));
      }
 catch (      Throwable ignored) {
      }
    }
  }
  final String[] pathSegments;
{
    final List<String> pathSegmentsList=uri.getPathSegments();
    final ArrayList<String> pathSegmentsFiltered=new ArrayList<>(pathSegmentsList.size());
    for (    String segment : pathSegmentsList) {
      while (segment.toLowerCase().endsWith("String_Node_Str") || segment.toLowerCase().endsWith("String_Node_Str")) {
        segment=segment.substring(0,segment.lastIndexOf('.'));
      }
      if (segment.length() > 0) {
        pathSegmentsFiltered.add(segment);
      }
    }
    pathSegments=pathSegmentsFiltered.toArray(new String[pathSegmentsFiltered.size()]);
  }
  if (pathSegments.length < 3) {
    return null;
  }
  if (!pathSegments[0].equalsIgnoreCase("String_Node_Str") && !pathSegments[0].equalsIgnoreCase("String_Node_Str")) {
    return null;
  }
  final String username=pathSegments[1];
  final String typeName=pathSegments[2].toUpperCase();
  final Type type;
  try {
    type=Type.valueOf(typeName);
  }
 catch (  Throwable t) {
    return null;
  }
  return new UserPostListingURL(type,username,limit,before,after);
}

Fixed version (ground truth):
public static UserPostListingURL parse(Uri uri){
  Integer limit=null;
  String before=null, after=null;
  for (  final String parameterKey : General.getUriQueryParameterNames(uri)) {
    if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      after=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      before=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      try {
        limit=Integer.parseInt(uri.getQueryParameter(parameterKey));
      }
 catch (      Throwable ignored) {
      }
    }
  }
  final String[] pathSegments;
{
    final List<String> pathSegmentsList=uri.getPathSegments();
    final ArrayList<String> pathSegmentsFiltered=new ArrayList<>(pathSegmentsList.size());
    for (    String segment : pathSegmentsList) {
      while (General.asciiLowercase(segment).endsWith("String_Node_Str") || General.asciiLowercase(segment).endsWith("String_Node_Str")) {
        segment=segment.substring(0,segment.lastIndexOf('.'));
      }
      if (segment.length() > 0) {
        pathSegmentsFiltered.add(segment);
      }
    }
    pathSegments=pathSegmentsFiltered.toArray(new String[pathSegmentsFiltered.size()]);
  }
  if (pathSegments.length < 3) {
    return null;
  }
  if (!pathSegments[0].equalsIgnoreCase("String_Node_Str") && !pathSegments[0].equalsIgnoreCase("String_Node_Str")) {
    return null;
  }
  final String username=pathSegments[1];
  final String typeName=General.asciiUppercase(pathSegments[2]);
  final Type type;
  try {
    type=Type.valueOf(typeName);
  }
 catch (  Throwable t) {
    return null;
  }
  return new UserPostListingURL(type,username,limit,before,after);
}