internal RavenJToken GetCachedResponse(HttpJsonRequest httpJsonRequest, HttpResponseHeaders additionalHeaders) { if (httpJsonRequest.CachedRequestDetails == null) throw new InvalidOperationException("Cannot get cached response from a request that has no cached information"); httpJsonRequest.ResponseStatusCode = HttpStatusCode.NotModified; httpJsonRequest.ResponseHeaders = new NameValueCollection(httpJsonRequest.CachedRequestDetails.Headers); if (additionalHeaders != null) { string forcePrimaryServerCHeck = additionalHeaders.GetFirstValue(Constants.RavenForcePrimaryServerCheck); if (forcePrimaryServerCHeck != null) httpJsonRequest.ResponseHeaders.Add(Constants.RavenForcePrimaryServerCheck, forcePrimaryServerCHeck); } IncrementCachedRequests(); return httpJsonRequest.CachedRequestDetails.Data.CloneToken(); }