Merge "Prevent title from overflowing into next line on small width"
diff --git a/java/com/google/gerrit/server/account/AuthToken.java b/java/com/google/gerrit/server/account/AuthToken.java
index 390042b..31ea7ca 100644
--- a/java/com/google/gerrit/server/account/AuthToken.java
+++ b/java/com/google/gerrit/server/account/AuthToken.java
@@ -65,7 +65,8 @@
   private static void validateId(String id) throws InvalidAuthTokenException {
     if (!TOKEN_ID_PATTERN.matcher(id).matches()) {
       throw new InvalidAuthTokenException(
-          "Token ID must contain only letters, numbers, hyphens and underscores.");
+          "Token ID must start with a letter and contain only letters (a-z,A-Z], numbers [0-9], "
+              + "hyphens [-] and underscores [_].");
     }
   }
 }
diff --git a/javatests/com/google/gerrit/pgm/http/jetty/ProjectQoSFilterTest.java b/javatests/com/google/gerrit/pgm/http/jetty/ProjectQoSFilterTest.java
index dcbcc76..23c9724 100644
--- a/javatests/com/google/gerrit/pgm/http/jetty/ProjectQoSFilterTest.java
+++ b/javatests/com/google/gerrit/pgm/http/jetty/ProjectQoSFilterTest.java
@@ -15,6 +15,7 @@
 package com.google.gerrit.pgm.http.jetty;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 import static org.mockito.Mockito.when;
 
 import com.google.gerrit.server.CurrentUser;
@@ -65,6 +66,7 @@
           try {
             listener.onComplete(asyncEvent);
           } catch (Exception e) {
+            assertWithMessage("should never happen").fail();
           }
         }
       }.run();
@@ -89,6 +91,7 @@
           try {
             listener.onTimeout(asyncEvent);
           } catch (Exception e) {
+            assertWithMessage("should never happen").fail();
           }
         }
       }.run();
@@ -114,6 +117,7 @@
           try {
             listener.onError(asyncEvent);
           } catch (Exception e) {
+            assertWithMessage("should never happen").fail();
           }
         }
       }.run();