@Override void handleClose() { // commented to be used later when we properly define the HTTP/2 connection expiration from the pool // boolean disposable = conn.streams.isEmpty(); if (request == null || request instanceof HttpClientRequestImpl) { conn.recycle(); } /* else { conn.listener.onRecycle(0, dispable); } */ if (!responseEnded) { responseEnded = true; if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } handleException(CLOSED_EXCEPTION); } }
@Override void handleReset(long errorCode) { synchronized (conn) { if (responseEnded) { return; } responseEnded = true; if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } } handleException(new StreamResetException(errorCode)); }
@Override public void reset(long code) { if (request == null) { writeReset(code); } else { if (!(requestEnded && responseEnded)) { requestEnded = true; responseEnded = true; writeReset(code); if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } } } }
protected void handleClosed() { super.handleClosed(); if (metrics != null) { metrics.endpointDisconnected(endpointMetric, metric()); } WebSocketImpl ws; List<StreamImpl> list = Collections.emptyList(); synchronized (this) { ws = this.ws; for (StreamImpl r = responseInProgress;r != null;r = r.next) { if (metrics != null) { metrics.requestReset(r.request.metric()); } if (list.isEmpty()) { list = new ArrayList<>(); } list.add(r); } } if (ws != null) { ws.handleClosed(); } for (StreamImpl stream : list) { stream.handleException(CLOSED_EXCEPTION); } }
@Override void handleEnd(MultiMap trailers) { if (conn.metrics != null) { if (request.exceptionOccurred != null) { conn.metrics.requestReset(request.metric()); } else { conn.metrics.responseEnd(request.metric(), response); } } responseEnded = true; // Should use a shared immutable object for CaseInsensitiveHeaders ? if (trailers == null) { trailers = new CaseInsensitiveHeaders(); } response.handleEnd(trailers); }
private boolean endResponse(LastHttpContent trailer) { synchronized (conn) { if (conn.metrics != null) { HttpClientRequestBase req = request; Object reqMetric = req.metric(); if (req.exceptionOccurred != null) { conn.metrics.requestReset(reqMetric); } else { conn.metrics.responseEnd(reqMetric, response); } } trailers = new HeadersAdaptor(trailer.trailingHeaders()); if (queue.isEmpty()) { response.handleEnd(trailers); } responseEnded = true; conn.close |= !conn.options.isKeepAlive(); conn.doResume(); return requestEnded; } }
@Override void handleClose() { // commented to be used later when we properly define the HTTP/2 connection expiration from the pool // boolean disposable = conn.streams.isEmpty(); if (request == null || request instanceof HttpClientRequestImpl) { conn.recycle(); } /* else { conn.listener.onRecycle(0, dispable); } */ if (!responseEnded) { responseEnded = true; if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } handleException(CLOSED_EXCEPTION); } }
@Override void handleReset(long errorCode) { synchronized (conn) { if (responseEnded) { return; } responseEnded = true; if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } } handleException(new StreamResetException(errorCode)); }
@Override public void reset(long code) { if (request == null) { writeReset(code); } else { if (!(requestEnded && responseEnded)) { requestEnded = true; responseEnded = true; writeReset(code); if (conn.metrics != null) { conn.metrics.requestReset(request.metric()); } } } }
protected void handleClosed() { super.handleClosed(); if (metrics != null) { metrics.endpointDisconnected(endpointMetric, metric()); } WebSocketImpl ws; List<StreamImpl> list = Collections.emptyList(); synchronized (this) { ws = this.ws; for (StreamImpl r = responseInProgress;r != null;r = r.next) { if (metrics != null) { metrics.requestReset(r.request.metric()); } if (list.isEmpty()) { list = new ArrayList<>(); } list.add(r); } } if (ws != null) { ws.handleClosed(); } for (StreamImpl stream : list) { stream.handleException(CLOSED_EXCEPTION); } }
@Override void handleEnd(MultiMap trailers) { if (conn.metrics != null) { if (request.exceptionOccurred != null) { conn.metrics.requestReset(request.metric()); } else { conn.metrics.responseEnd(request.metric(), response); } } responseEnded = true; // Should use a shared immutable object for CaseInsensitiveHeaders ? if (trailers == null) { trailers = new CaseInsensitiveHeaders(); } response.handleEnd(trailers); }
private boolean endResponse(LastHttpContent trailer) { synchronized (conn) { if (conn.metrics != null) { HttpClientRequestBase req = request; Object reqMetric = req.metric(); if (req.exceptionOccurred != null) { conn.metrics.requestReset(reqMetric); } else { conn.metrics.responseEnd(reqMetric, response); } } trailers = new HeadersAdaptor(trailer.trailingHeaders()); if (queue.isEmpty()) { response.handleEnd(trailers); } responseEnded = true; conn.close |= !conn.options.isKeepAlive(); conn.doResume(); return requestEnded; } }