Merge topic 'web-session-regression'

* changes:
  Patch guice servlet extension to fix cookies bug
  WebSession: Prevent NPE in GitSmartHttpTools.isGitClient()
  WebSessionCache: Make response parameter optional
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/CacheBasedWebSession.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/CacheBasedWebSession.java
index b472bbd..d315fa3 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/CacheBasedWebSession.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/CacheBasedWebSession.java
@@ -68,7 +68,8 @@
     this.anonymousProvider = anonymousProvider;
     this.identified = identified;
 
-    if (!GitSmartHttpTools.isGitClient(request)) {
+    if (request.getRequestURI() == null
+        || !GitSmartHttpTools.isGitClient(request)) {
       String cookie = readCookie();
       if (cookie != null) {
         key = new Key(cookie);
@@ -184,6 +185,10 @@
   }
 
   private void saveCookie() {
+    if (response == null) {
+      return;
+    }
+
     final String token;
     final int ageSeconds;
 
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/H2CacheBasedWebSession.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/H2CacheBasedWebSession.java
index 3dfb9fb..4b68f02 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/H2CacheBasedWebSession.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/H2CacheBasedWebSession.java
@@ -17,6 +17,7 @@
 import static java.util.concurrent.TimeUnit.MINUTES;
 
 import com.google.common.cache.Cache;
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.extensions.registration.DynamicItem;
 import com.google.gerrit.httpd.WebSessionManager.Val;
 import com.google.gerrit.server.AnonymousUser;
@@ -56,7 +57,7 @@
   @Inject
   H2CacheBasedWebSession(
       HttpServletRequest request,
-      HttpServletResponse response,
+      @Nullable HttpServletResponse response,
       WebSessionManagerFactory managerFactory,
       @Named(WebSessionManager.CACHE_NAME) Cache<String, Val> cache,
       AuthConfig authConfig,
diff --git a/lib/guice/BUCK b/lib/guice/BUCK
index 946bf9d..162ad07 100644
--- a/lib/guice/BUCK
+++ b/lib/guice/BUCK
@@ -1,6 +1,7 @@
 include_defs('//lib/maven.defs')
 
 VERSION = '4.0-beta'
+COOKIE_PATCH = '4.0-beta-98-g8d88344'
 EXCLUDE = [
   'META-INF/DEPENDENCIES',
   'META-INF/LICENSE',
@@ -41,8 +42,9 @@
 
 maven_jar(
   name = 'guice-servlet',
-  id = 'com.google.inject.extensions:guice-servlet:' + VERSION,
-  sha1 = '46b44984f254c0bf92d0c972fad1a70292ada28e',
+  id = 'com.google.inject.extensions:guice-servlet:' + COOKIE_PATCH,
+  repository = GERRIT,
+  sha1 = 'fa17d57a083fe9fc86b93f2dc37069573a2e65cd',
   license = 'Apache2.0',
   deps = [':guice'],
   exclude = EXCLUDE,