Merge "Merge branch 'stable-2.16' into stable-3.0" into stable-3.0
diff --git a/src/main/java/com/googlesource/gerrit/plugins/readonly/ReadOnly.java b/src/main/java/com/googlesource/gerrit/plugins/readonly/ReadOnly.java
index f0ffbbd..30f8904 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/readonly/ReadOnly.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/readonly/ReadOnly.java
@@ -71,7 +71,9 @@
         && request instanceof HttpServletRequest
         && response instanceof HttpServletResponse
         && shouldBlock((HttpServletRequest) request)) {
-      ((HttpServletResponse) response).sendError(SC_SERVICE_UNAVAILABLE, config.message());
+      HttpServletResponse httpResponse = (HttpServletResponse) response;
+      httpResponse.setStatus(SC_SERVICE_UNAVAILABLE);
+      httpResponse.getWriter().println(config.message());
       return;
     }
     chain.doFilter(request, response);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/readonly/AbstractReadOnlyTest.java b/src/test/java/com/googlesource/gerrit/plugins/readonly/AbstractReadOnlyTest.java
index e24137f..56be07a 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/readonly/AbstractReadOnlyTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/readonly/AbstractReadOnlyTest.java
@@ -122,16 +122,16 @@
   @UseLocalDisk
   @UseSsh
   public void pushBySshIsRejectedWhenReadOnly() throws Exception {
-    pushForReview(true);
+    pushForReview(true, "READ ONLY");
   }
 
   @Test
   @UseLocalDisk
   public void pushByHttpIsRejectedWhenReadOnly() throws Exception {
-    pushForReview(false);
+    pushForReview(false, "Service Unavailable");
   }
 
-  private void pushForReview(boolean ssh) throws Exception {
+  private void pushForReview(boolean ssh, String expectedMessage) throws Exception {
     String url = ssh ? adminSshSession.getUrl() : admin.getHttpUrl(server);
     if (!ssh) {
       CredentialsProvider.setDefault(
@@ -150,7 +150,7 @@
       pushTo("refs/for/master");
       fail("expected TransportException");
     } catch (TransportException e) {
-      assertThat(e).hasMessageThat().contains("READ ONLY");
+      assertThat(e).hasMessageThat().contains(expectedMessage);
     }
 
     // Disable read-only