Program: 15349
Project: 15349
Buggy source:
public static SearchPostListURL parse(final Uri uri){
  boolean restrict_sr=false;
  String query="String_Node_Str";
  PostListingController.Sort order=null;
  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) {
      }
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      order=PostListingController.parseSort(uri.getQueryParameter(parameterKey));
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      query=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      restrict_sr="String_Node_Str".equalsIgnoreCase(uri.getQueryParameter(parameterKey));
    }
  }
  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 != 1 && pathSegments.length != 3)   return null;
  if (!pathSegments[pathSegments.length - 1].equalsIgnoreCase("String_Node_Str"))   return null;
switch (pathSegments.length) {
case 1:
{
      return new SearchPostListURL(null,query,order,limit,before,after);
    }
case 3:
{
    if (!pathSegments[0].equals("String_Node_Str"))     return null;
    final String subreddit=pathSegments[1];
    return new SearchPostListURL(restrict_sr ? subreddit : null,query,order,limit,before,after);
  }
default :
return null;
}
}

Fixed version (ground truth):
public static SearchPostListURL parse(final Uri uri){
  boolean restrict_sr=false;
  String query="String_Node_Str";
  PostListingController.Sort order=null;
  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) {
      }
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      order=PostListingController.parseSort(uri.getQueryParameter(parameterKey));
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      query=uri.getQueryParameter(parameterKey);
    }
 else     if (parameterKey.equalsIgnoreCase("String_Node_Str")) {
      restrict_sr="String_Node_Str".equalsIgnoreCase(uri.getQueryParameter(parameterKey));
    }
  }
  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 != 1 && pathSegments.length != 3)   return null;
  if (!pathSegments[pathSegments.length - 1].equalsIgnoreCase("String_Node_Str"))   return null;
switch (pathSegments.length) {
case 1:
{
      return new SearchPostListURL(null,query,order,limit,before,after);
    }
case 3:
{
    if (!pathSegments[0].equals("String_Node_Str"))     return null;
    final String subreddit=pathSegments[1];
    return new SearchPostListURL(restrict_sr ? subreddit : null,query,order,limit,before,after);
  }
default :
return null;
}
}