code: @Override
      public void headerComplianceCheck() throws MessageSentException {
          final boolean bTrace = TraceComponent.isAnyTracingEnabled();
          if (bTrace && tc.isEntryEnabled()) {
              Tr.entry(tc, "headerComplianceCheck");
          }
  
          super.headerComplianceCheck();
  
          // 339972 - responses must have the Date header
          if (!containsHeader(HttpHeaderKeys.HDR_DATE)) {
              if (bTrace && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Creating a missing Date header");
              }
              setCurrentDate();
          }
  
          if (getServiceContext().getHttpConfig().removeServerHeader()) {
              // @PK15848 - configuration says to remove it if present
              if (containsHeader(HttpHeaderKeys.HDR_SERVER)) {
                  if (bTrace && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Configuration forcing removal of Server header");
                  }
                  removeSpecialHeader(HttpHeaderKeys.HDR_SERVER);
              }
          } else if (!containsHeader(HttpHeaderKeys.HDR_SERVER)) {
              // PM87031 (PM75371) Start
              // only add value of the Server Header if ServerHeaderValue property has a value
              byte[] serverHeader = getServiceContext().getHttpConfig().getServerHeaderValue();
              if (null != serverHeader) {
                  setSpecialHeader(HttpHeaderKeys.HDR_SERVER, serverHeader);
                  if (bTrace && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Adding the Server header value: " + getHeader(HttpHeaderKeys.HDR_SERVER).asString());
                  }
              } // PM87031 (PM75371) End
          }
  
          // @PK20531 - add Cache-Control header if config says to
          if (getServiceContext().getHttpConfig().shouldCookiesConfigureNoCache()) {
              updateCacheControl();
          }
  
          if (bTrace && tc.isEntryEnabled()) {
              Tr.exit(tc, "headerComplianceCheck");
          }
      }
docs: Before marshalling headers into a buffer, this will run the data
  through a compliancy check and take appropriate action (throw
  errors, add missing headers, etc).
  
  @throws MessageSentException