Program: 5324
Project: 5324
Buggy source:
@GET @Path("String_Node_Str") public void searchMetadata(HttpRequest request,HttpResponder responder,@PathParam("String_Node_Str") String namespaceId,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") String searchQuery,@QueryParam("String_Node_Str") List<String> targets,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") String sort,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int offset,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int limit,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int numCursors,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") String cursor,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") boolean showHidden,@Nullable @QueryParam("String_Node_Str") String entityScope) throws Exception {
  Set<EntityTypeSimpleName> types=Collections.emptySet();
  if (targets != null) {
    types=ImmutableSet.copyOf(Iterables.transform(targets,STRING_TO_TARGET_TYPE));
  }
  SortInfo sortInfo=SortInfo.of(URLDecoder.decode(sort,"String_Node_Str"));
  if (SortInfo.DEFAULT.equals(sortInfo)) {
    if (!(cursor.isEmpty()) || 0 != numCursors) {
      throw new BadRequestException("String_Node_Str");
    }
  }
  try {
    MetadataSearchResponse response=metadataAdmin.search(namespaceId,URLDecoder.decode(searchQuery,"String_Node_Str"),types,sortInfo,offset,limit,numCursors,cursor,showHidden,validateEntityScope(entityScope));
    responder.sendJson(HttpResponseStatus.OK,response,MetadataSearchResponse.class,GSON);
  }
 catch (  Exception e) {
    if (Throwables.getRootCause(e) instanceof BadRequestException) {
      throw new BadRequestException(e.getMessage(),e);
    }
    throw e;
  }
}

Fixed version (ground truth):
@GET @Path("String_Node_Str") public void searchMetadata(HttpRequest request,HttpResponder responder,@PathParam("String_Node_Str") String namespaceId,@QueryParam("String_Node_Str") String searchQuery,@QueryParam("String_Node_Str") List<String> targets,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") String sort,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int offset,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int limit,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") int numCursors,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") String cursor,@QueryParam("String_Node_Str") @DefaultValue("String_Node_Str") boolean showHidden,@Nullable @QueryParam("String_Node_Str") String entityScope) throws Exception {
  if (searchQuery == null || searchQuery.isEmpty()) {
    throw new BadRequestException("String_Node_Str");
  }
  Set<EntityTypeSimpleName> types=Collections.emptySet();
  if (targets != null) {
    types=ImmutableSet.copyOf(Iterables.transform(targets,STRING_TO_TARGET_TYPE));
  }
  SortInfo sortInfo=SortInfo.of(URLDecoder.decode(sort,"String_Node_Str"));
  if (SortInfo.DEFAULT.equals(sortInfo)) {
    if (!(cursor.isEmpty()) || 0 != numCursors) {
      throw new BadRequestException("String_Node_Str");
    }
  }
  try {
    MetadataSearchResponse response=metadataAdmin.search(namespaceId,URLDecoder.decode(searchQuery,"String_Node_Str"),types,sortInfo,offset,limit,numCursors,cursor,showHidden,validateEntityScope(entityScope));
    responder.sendJson(HttpResponseStatus.OK,response,MetadataSearchResponse.class,GSON);
  }
 catch (  Exception e) {
    if (Throwables.getRootCause(e) instanceof BadRequestException) {
      throw new BadRequestException(e.getMessage(),e);
    }
    throw e;
  }
}