if (httpHeader.isSkipRemainder()) {
return;
}
final AsyncHandler handler = context.getHandler();
final GrizzlyResponseHeaders responseHeaders = new GrizzlyResponseHeaders((HttpResponsePacket) httpHeader);
if (context.getProvider().getClientConfig().hasResponseFilters()) {
final List<ResponseFilter> filters = context.getProvider().getClientConfig().getResponseFilters();
FilterContext fc = new FilterContext.FilterContextBuilder().asyncHandler(handler).request(context.getRequest())
.responseHeaders(responseHeaders).responseStatus(context.getResponseStatus()).build();
try {
for (int i = 0, len = filters.size(); i < len; i++) {
final ResponseFilter f = filters.get(i);
fc = f.filter(fc);
}
} catch (Exception e) {
context.abort(e);
}
if (fc.replayRequest()) {
httpHeader.setSkipRemainder(true);
final Request newRequest = fc.getRequest();
final AsyncHandler newHandler = fc.getAsyncHandler();
try {
final ConnectionManager m = context.getProvider().getConnectionManager();
final Connection c = m.obtainConnection(newRequest, context.getFuture());
final HttpTxContext newContext = context.copy();
newContext.setRequest(newRequest);