code: private byte[] readRequestBody() {
          int bytesLeft = m_request.getContentLength();
          if (bytesLeft <= 0) {
              return new byte[0];
          }
  
          int totalBytesRead = 0;
          try {
              byte[] byteBuffer = new byte[bytesLeft];
              try (InputStream inputStream = m_request.getInputStream()) {
                  int bytesRead = -1;
                  int offset = 0;
                  while ((bytesRead = inputStream.read(byteBuffer, offset, bytesLeft)) > 0) {
                      offset += bytesRead;
                      bytesLeft -= bytesRead;
                      totalBytesRead += bytesRead;
                  }
              }
              return byteBuffer;
          } catch (IOException e) {
              String errMsg =
                  String.format("Error reading from input request; expected %d bytes; only read %d bytes",
                                m_request.getContentLength(), totalBytesRead);
              throw new RuntimeException(errMsg, e);
          }
      }
docs: zero-length byte[] is returned. The message is *not* decompressed.