Iterable<ContainerRequestFilter> sortedRequestFilters;
if (responseFilters == null) {
// post-matching (response filter stage is pushed in pre-matching phase, so that if pre-matching filter
// throws exception, response filters get still invoked)
RoutingContext rc = locator.getService(RoutingContext.class);
sortedRequestFilters = Providers.sortRankedProviders(new RankedComparator<ContainerRequestFilter>(), requestFilters,
rc.getBoundRequestFilters());
} else {
// pre-matching
respondingContextFactory.get().push(new ResponseFilterStage(responseFilters, locator));
sortedRequestFilters = Providers.sortRankedProviders(new RankedComparator<ContainerRequestFilter>(), requestFilters);
}