/** * Returns a mutable {@link HttpHeaders} which contains the same headers as the specified {@code headers}. */ public static HttpHeaders toMutableHeaders(HttpHeaders headers) { requireNonNull(headers, "headers"); return headers.isImmutable() ? HttpHeaders.copyOf(headers) : headers; }
private HttpHeaders setHttpStatus(HttpHeaders headers) { if (headers.status() != null) { // Do not overwrite HTTP status. return headers; } final HttpStatus defaultHttpStatus = defaultHttpHeaders.status(); assert defaultHttpStatus != null; return headers.isImmutable() ? HttpHeaders.copyOf(headers).status(defaultHttpStatus) : headers.status(defaultHttpStatus); }
private HttpHeaders addNegotiatedResponseMediaType(ServiceRequestContext ctx, HttpHeaders headers) { final MediaType negotiatedResponseMediaType = ctx.negotiatedResponseMediaType(); if (negotiatedResponseMediaType == null || headers.contentType() != null) { // Do not overwrite 'content-type'. return headers; } return headers.isImmutable() ? HttpHeaders.copyOf(headers).contentType(negotiatedResponseMediaType) : headers.contentType(negotiatedResponseMediaType); }
private static HttpHeaders fillAdditionalHeaders(HttpHeaders headers, HttpHeaders additionalHeaders) { if (!additionalHeaders.isEmpty()) { if (headers.isImmutable()) { // All headers are already validated. final HttpHeaders temp = headers; headers = new DefaultHttpHeaders(false, temp.size() + additionalHeaders.size()); headers.set(temp); } headers.setAllIfAbsent(additionalHeaders); } return headers; }
private HttpHeaders autoFillHeaders(Channel ch) { HttpHeaders requestHeaders = request.headers(); if (requestHeaders.isImmutable()) { final HttpHeaders temp = requestHeaders; requestHeaders = new DefaultHttpHeaders(false);