docs: private SecureRandom createSecureRandom()
      {
  
          SecureRandom result = null;
  
          long t1 = System.currentTimeMillis();
          if (secureRandomClass != null)
          {
              try
              {
                  // Construct and seed a new random number generator
                  Class<?> clazz = Class.forName(secureRandomClass);
                  result = (SecureRandom) clazz.newInstance();
              }
              catch (Exception e)
              {
                  log.log(Level.SEVERE, "Exception initializing random number generator of class "+ 
                          secureRandomClass + ". Falling back to java.secure.SecureRandom", e);
              }
          }
  
          if (result == null)
          {
              // No secureRandomClass or creation failed. Use SecureRandom.
              try
              {
                  if (secureRandomProvider != null
                          && secureRandomProvider.length() > 0)
                  {
                      result = SecureRandom.getInstance(secureRandomAlgorithm,
                              secureRandomProvider);
                  }
                  else
                  {
                      if (secureRandomAlgorithm != null
                              && secureRandomAlgorithm.length() > 0)
                      {
                          result = SecureRandom.getInstance(secureRandomAlgorithm);
                      }
                  }
              }
              catch (NoSuchAlgorithmException e)
              {
                  log.log(Level.SEVERE, "Exception initializing random number generator using algorithm: "+
                          secureRandomAlgorithm, e);
              }
              catch (NoSuchProviderException e)
              {
                  log.log(Level.SEVERE, "Exception initializing random number generator using provider: " + 
                          secureRandomProvider, e);
              }
          }
  
          if (result == null)
          {
              // Invalid provider / algorithm
              try
              {
                  result = SecureRandom.getInstance("SHA1PRNG");
              }
              catch (NoSuchAlgorithmException e)
              {
                  log.log(Level.SEVERE, "Invalid provider / algoritm SHA1PRNG for generate secure random token", e);
              }
          }
  
          if (result == null)
          {
              // Nothing works - use platform default
              result = new SecureRandom();
          }
  
          // Force seeding to take place
          result.nextInt();
  
          long t2 = System.currentTimeMillis();
          if ((t2 - t1) > 100)
          {
              if (log.isLoggable(Level.FINEST))
              {
                  log.info("Creation of SecureRandom instance for session ID generation using ["
                          +result.getAlgorithm()+"] took ["+Long.valueOf(t2 - t1)+"] milliseconds.");
              }
          }
          return result;
      }