private void updateFromNonCachableResponse(HttpRequest currentRequest, HttpResponse currentResponse) {
        //update from 304 NOT MODIFIED responses
        CachedResponse cached = responseCache.get(currentRequest.getUri());
        if (currentResponse.getStatus().code() == 304) {
            long lastModified = determineLastModified(currentResponse);
            if (lastModified > 0) {
                if (cached != null) {
                    if (cached.getLastModified() < lastModified) {
                        if (logger.isDebugEnabled()) {
                            logger.debug("Removing " + currentRequest.getUri() + " - reason: expired Last-Modified");
                        }

                        removeFromCache(currentRequest, cached);
                    }
                }
            }
        } else if (cached != null) {
            if (logger.isDebugEnabled()) {
                logger.debug("Removing " + currentRequest.getUri() + " - reason: non-cashable request received");
            }
            removeFromCache(currentRequest, cached);
        }
    }