docs: public byte[] toByteArray()
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "toByteArray");
  
          // Just in case you're wondering, if two threads race to create the
          // cached arrays, we may end up with two identical arrays, one of which
          // is cached, while the other thread uses the second. Since the contents of
          // the arrays are identical, this does not cause a problem!
          if (_cachedBytes == null)
          {
              _cachedBytes = new byte[16];
  
              _cachedBytes[0] = (byte) ((_uuidHigh & 0xFF00000000000000L) >>> 56);
              _cachedBytes[1] = (byte) ((_uuidHigh & 0x00FF000000000000L) >>> 48);
              _cachedBytes[2] = (byte) ((_uuidHigh & 0x0000FF0000000000L) >>> 40);
              _cachedBytes[3] = (byte) ((_uuidHigh & 0x000000FF00000000L) >>> 32);
              _cachedBytes[4] = (byte) ((_uuidHigh & 0x00000000FF000000L) >>> 24);
              _cachedBytes[5] = (byte) ((_uuidHigh & 0x0000000000FF0000L) >>> 16);
              _cachedBytes[6] = (byte) ((_uuidHigh & 0x000000000000FF00L) >>> 8);
              _cachedBytes[7] = (byte) ((_uuidHigh & 0x00000000000000FFL) >>> 0);
              _cachedBytes[8] = (byte) ((_uuidLow & 0xFF00000000000000L) >>> 56);
              _cachedBytes[9] = (byte) ((_uuidLow & 0x00FF000000000000L) >>> 48);
              _cachedBytes[10] = (byte) ((_uuidLow & 0x0000FF0000000000L) >>> 40);
              _cachedBytes[11] = (byte) ((_uuidLow & 0x000000FF00000000L) >>> 32);
              _cachedBytes[12] = (byte) ((_uuidLow & 0x00000000FF000000L) >>> 24);
              _cachedBytes[13] = (byte) ((_uuidLow & 0x0000000000FF0000L) >>> 16);
              _cachedBytes[14] = (byte) ((_uuidLow & 0x000000000000FF00L) >>> 8);
              _cachedBytes[15] = (byte) ((_uuidLow & 0x00000000000000FFL) >>> 0);
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "toByteArray", com.ibm.ejs.util.Util.toHexString(_cachedBytes));
  
          return _cachedBytes;
      }