docs: private void checkHeaderValue(String data) {
          // if the last character is a CR or LF, then this fails
          int index = data.length() - 1;
          if (index < 0) {
              // empty string, quit now with success
              return;
          }
          String error = null;
          char c = data.charAt(index);
          if (BNFHeaders.LF == c || BNFHeaders.CR == c) {
              error = "Illegal trailing EOL";
          }
  
          // scan through the data now for invalid CRLF presence. Note that CRLFs
          // may be followed by whitespace for valid multiline headers.
          for (int i = 0; null == error && i < index; i++) {
              c = data.charAt(i);
              if (BNFHeaders.CR == c) {
                  // next char must be an LF
                  if (BNFHeaders.LF != data.charAt(i + 1)) {
                      error = "Invalid CR not followed by LF";
                  }
              } else if (BNFHeaders.LF == c) {
                  c = data.charAt(++i);
                  // if it is not followed by whitespace then this value is bad
                  if (BNFHeaders.TAB != c && BNFHeaders.SPACE != c) {
                      error = "Invalid LF not followed by whitespace";
                  }
              }
          }
  
          // if we found an error, throw the exception now
          if (null != error) {
              IllegalArgumentException iae = new IllegalArgumentException(error);
              FFDCFilter.processException(iae, getClass().getName() + ".checkHeaderValue(String)", "1", this);
              throw iae;
          }
      }