RequestTask(Request request, BufferedContentChannel content, ResponseHandler responseHandler) { this.request = request; this.requestReference = request.refer(); this.content = content; this.responseHandler = responseHandler; }
RequestTask(Request request, BufferedContentChannel content, ResponseHandler responseHandler) { this.request = request; this.content = content; this.responseHandler = responseHandler; this.requestReference = request.refer(); }
@Override public ContentChannel handleRequest(final Request request, final ResponseHandler responseHandler) { Preconditions.checkArgument(request instanceof HttpRequest, "Expected HttpRequest, got " + request); Objects.requireNonNull(responseHandler, "responseHandler"); this.contentCharset = getCharsetByName(contentCharsetName); this.responseHandler = responseHandler; this.request = (HttpRequest) request; this.requestReference = request.refer(); return this; }
this.parentReference = this.parent.refer(); container = null; creationTime = parent.container().currentTimeMillis();
@Override public ContentChannel handleRequest(Request request, ResponseHandler responseHandler) { try (final ResourceReference requestReference = request.refer()) { ContentChannel contentChannel; final ReferenceCountingResponseHandler referenceCountingResponseHandler = new ReferenceCountingResponseHandler(request, new NullContentResponseHandler(responseHandler)); try { contentChannel = delegate.handleRequest(request, referenceCountingResponseHandler); Objects.requireNonNull(contentChannel, "contentChannel"); } catch (Throwable t) { try { // The response handler might never be invoked, due to the exception thrown from handleRequest(). referenceCountingResponseHandler.unrefer(); } catch (Throwable thrownFromUnrefer) { log.log(Level.WARNING, "Unexpected problem", thrownFromUnrefer); } throw t; } return new ReferenceCountingContentChannel(request, contentChannel); } }
@Override public ContentChannel handleRequest(Request request, ResponseHandler responseHandler) { try (final ResourceReference requestReference = request.refer()) { ContentChannel contentChannel; final ResponseHandler proxyResponseHandler = new ProxyResponseHandler( request, new NullContentResponseHandler(responseHandler)); try { contentChannel = delegate.handleRequest(request, proxyResponseHandler); Objects.requireNonNull(contentChannel, "contentChannel"); } catch (Throwable t) { try { proxyResponseHandler .handleResponse(new Response(Response.Status.INTERNAL_SERVER_ERROR, t)) .close(IGNORED_COMPLETION); } catch (Throwable ignored) { // empty } throw t; } return new ProxyContentChannel(request, contentChannel); } }