code: @Override
  	protected long getLastModified(HttpServletRequest req) {
  		try {
  			ReadableInstant mostRecent = null;
  			for(
  				Tuple2<Book,ReadableInstant> sitemapBook
  				: getSitemapBooks(
  					getServletContext(),
  					req,
  					(HttpServletResponse)req.getAttribute(RESPONSE_IN_REQUEST_ATTRIBUTE)
  				)
  			) {
  				ReadableInstant lastModified = sitemapBook.getElement2();
  				// If any single book is unknown, the overall result is unknown
  				if(lastModified == null) {
  					mostRecent = null;
  					break;
  				}
  				if(
  					mostRecent == null
  					|| (lastModified.compareTo(mostRecent) > 0)
  				) {
  					mostRecent = lastModified;
  				}
  			}
  			return mostRecent == null ? -1 : mostRecent.getMillis();
  		} catch(ServletException | IOException e) {
  			log("getLastModified failed", e);
  			return -1;
  		}
  	}
docs: Last modified is known only when the last modified is known for all books,
  and it is the most recent of all the per-book last modified.