docs: private void parseValue(byte[] data, CookieData token) {
  
          int start = -1;
          int stop = -1;
          int pos = this.bytePosition;
          int num_quotes = 0;
  
          // cycle through each byte until we hit a delimiter or end of data
          for (; pos < data.length; pos++) {
              byte b = data[pos];
  
              // check for delimiter
              if (';' == b) {
                  break;
              }
  
              // check for quotes
              if ('"' == b) {
                  num_quotes++;
              }
  
              // Commas should not be treated as delimiters when they are
              // part of the Expires attribute
              if (',' == b) {
                  // Port="80,8080" is valid
                  if (CookieData.cookiePort.equals(token)) {
                      if (2 <= num_quotes) {
                          // this comma is after the quoted port string
                          break;
                      }
                  } else if (!CookieData.cookieExpires.equals(token)) {
                      break;
                  }
              }
  
              // ignore white space
              if (' ' != b && '\t' != b) {
                  if (-1 == start) {
                      start = pos;
                  }
                  stop = pos;
              }
          }
  
          // save where we stopped
          this.bytePosition = pos + 1;
  
          // check the output parameters
          if (-1 == start) {
              this.value = new byte[0];
              return;
          }
          if (-1 == stop) {
              this.value = new byte[0];
              return;
          }
  
          // filter out any surrounding quotes
          if ('"' == data[start] && '"' == data[stop]) {
              start++;
              stop--;
          }
  
          // Retrieve the cookie attribute value
          int len = stop - start + 1;
          if (0 <= len) {
              this.value = new byte[len];
              if (0 < len) {
                  System.arraycopy(data, start, this.value, 0, len);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "value: " + GenericUtils.nullOutPasswords(this.value, (byte) '&'));
                  }
              }
          }
      }