private void setCloseIfLifetimeExceeded(Query query, Result result, int maxLifetimeSeconds) { final HttpRequest httpRequest = query.getHttpRequest(); if (httpRequest == null) { query.trace(false, 5, simpleName, " got max lifetime = ", maxLifetimeSeconds, ", but got no JDisc request. Setting no header."); return; } final long connectedAtMillis = httpRequest.getJDiscRequest().getConnectedAt(TimeUnit.MILLISECONDS); final long maxLifeTimeMillis = maxLifetimeSeconds * 1000L; if (connectedAtMillis + maxLifeTimeMillis < clock.getAsLong()) { result.getHeaders(true).put(HTTP_CONNECTION_HEADER_NAME, HTTP_CONNECTION_CLOSE_ARGUMENT); query.trace(false, 5, simpleName, ": Max HTTP connection lifetime (", maxLifetimeSeconds, ") exceeded; adding \"", HTTP_CONNECTION_HEADER_NAME, ": ", HTTP_CONNECTION_CLOSE_ARGUMENT, "\" header"); } }