docs: public String generateSessionId()
      {
  
          byte random[] = new byte[16];
  
          // Render the result as a String of hexadecimal digits
          StringBuilder buffer = new StringBuilder();
  
          int resultLenBytes = 0;
  
          while (resultLenBytes < sessionIdLength)
          {
              getRandomBytes(random);
              for (int j = 0;
                      j < random.length && resultLenBytes < sessionIdLength;
                      j++)
              {
                  byte b1 = (byte) ((random[j] & 0xf0) >> 4);
                  byte b2 = (byte) (random[j] & 0x0f);
                  if (b1 < 10)
                  {
                      buffer.append((char) ('0' + b1));
                  }
                  else
                  {
                      buffer.append((char) ('A' + (b1 - 10)));
                  }
                  if (b2 < 10)
                  {
                      buffer.append((char) ('0' + b2));
                  }
                  else
                  {
                      buffer.append((char) ('A' + (b2 - 10)));
                  }
                  resultLenBytes++;
              }
          }
  
          if (jvmRoute != null && jvmRoute.length() > 0)
          {
              buffer.append('.').append(jvmRoute);
          }
  
          return buffer.toString();
      }