public abstract class org.apache.catalina.util.SessionIdGeneratorBase extends org.apache.catalina.util.LifecycleBase implements org.apache.catalina.SessionIdGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.catalina.util.SessionIdGeneratorBase
  super_class: org.apache.catalina.util.LifecycleBase
{
  private final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.Queue<java.security.SecureRandom> randoms;
    descriptor: Ljava/util/Queue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Queue<Ljava/security/SecureRandom;>;

  private java.lang.String secureRandomClass;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String secureRandomAlgorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String secureRandomProvider;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String jvmRoute;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int sessionIdLength;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc "org.apache.catalina.util"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         1: .line 38
            putstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 39
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 32
            aload 0 /* this */
            invokespecial org.apache.catalina.util.LifecycleBase.<init>:()V
         1: .line 35
            aload 0 /* this */
            ldc Lorg/apache/catalina/util/SessionIdGeneratorBase;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
         2: .line 49
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedQueue
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
            putfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
         3: .line 51
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
         4: .line 53
            aload 0 /* this */
            ldc "SHA1PRNG"
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
         5: .line 55
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
         6: .line 59
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
         7: .line 63
            aload 0 /* this */
            bipush 16
            putfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
         8: .line 32
            return
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public java.lang.String getSecureRandomClass();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 74
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public void setSecureRandomClass(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // java.lang.String secureRandomClass
         0: .line 86
            aload 0 /* this */
            aload 1 /* secureRandomClass */
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
         1: .line 87
            return
        end local 1 // java.lang.String secureRandomClass
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    2     1  secureRandomClass  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      secureRandomClass  

  public java.lang.String getSecureRandomAlgorithm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 98
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public void setSecureRandomAlgorithm(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // java.lang.String secureRandomAlgorithm
         0: .line 115
            aload 0 /* this */
            aload 1 /* secureRandomAlgorithm */
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
         1: .line 116
            return
        end local 1 // java.lang.String secureRandomAlgorithm
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    2     1  secureRandomAlgorithm  Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      secureRandomAlgorithm  

  public java.lang.String getSecureRandomProvider();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 127
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public void setSecureRandomProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // java.lang.String secureRandomProvider
         0: .line 144
            aload 0 /* this */
            aload 1 /* secureRandomProvider */
            putfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
         1: .line 145
            return
        end local 1 // java.lang.String secureRandomProvider
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    2     1  secureRandomProvider  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      secureRandomProvider  

  public java.lang.String getJvmRoute();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 154
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public void setJvmRoute(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // java.lang.String jvmRoute
         0: .line 166
            aload 0 /* this */
            aload 1 /* jvmRoute */
            putfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
         1: .line 167
            return
        end local 1 // java.lang.String jvmRoute
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    2     1  jvmRoute  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      jvmRoute  

  public int getSessionIdLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 175
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
            ireturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  public void setSessionIdLength(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // int sessionIdLength
         0: .line 186
            aload 0 /* this */
            iload 1 /* sessionIdLength */
            putfield org.apache.catalina.util.SessionIdGeneratorBase.sessionIdLength:I
         1: .line 187
            return
        end local 1 // int sessionIdLength
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    2     1  sessionIdLength  I
    MethodParameters:
                 Name  Flags
      sessionIdLength  

  public java.lang.String generateSessionId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 195
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.jvmRoute:Ljava/lang/String;
            invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;

  protected void getRandomBytes(byte[]);
    descriptor: ([B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
        start local 1 // byte[] bytes
         0: .line 201
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast java.security.SecureRandom
            astore 2 /* random */
        start local 2 // java.security.SecureRandom random
         1: .line 202
            aload 2 /* random */
            ifnonnull 3
         2: .line 203
            aload 0 /* this */
            invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom:()Ljava/security/SecureRandom;
            astore 2 /* random */
         3: .line 205
      StackMap locals: java.security.SecureRandom
      StackMap stack:
            aload 2 /* random */
            aload 1 /* bytes */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         4: .line 206
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
            aload 2 /* random */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 207
            return
        end local 2 // java.security.SecureRandom random
        end local 1 // byte[] bytes
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            0    6     1   bytes  [B
            1    6     2  random  Ljava/security/SecureRandom;
    MethodParameters:
       Name  Flags
      bytes  

  private java.security.SecureRandom createSecureRandom();
    descriptor: ()Ljava/security/SecureRandom;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 216
            aconst_null
            astore 1 /* result */
        start local 1 // java.security.SecureRandom result
         1: .line 218
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 2 /* t1 */
        start local 2 // long t1
         2: .line 219
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
            ifnull 12
         3: .line 222
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         4: .line 223
            aload 4 /* clazz */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.SecureRandom
            astore 1 /* result */
        end local 4 // java.lang.Class clazz
         5: .line 224
            goto 12
      StackMap locals: org.apache.catalina.util.SessionIdGeneratorBase java.security.SecureRandom long
      StackMap stack: java.lang.Exception
         6: astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 225
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "sessionIdGeneratorBase.random"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 226
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomClass:Ljava/lang/String;
            aastore
         9: .line 225
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        10: .line 226
            aload 4 /* e */
        11: .line 225
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Exception e
        12: .line 230
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* error */
        start local 4 // boolean error
        13: .line 231
            aload 1 /* result */
            ifnonnull 39
        14: .line 234
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
            ifnull 20
        15: .line 235
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 20
        16: .line 236
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
        17: .line 237
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
        18: .line 236
            invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/SecureRandom;
            astore 1 /* result */
        19: .line 238
            goto 39
      StackMap locals: int
      StackMap stack:
        20: aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            ifnull 39
        21: .line 239
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 39
        22: .line 240
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
            astore 1 /* result */
        23: .line 242
            goto 39
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        24: astore 5 /* e */
        start local 5 // java.security.NoSuchAlgorithmException e
        25: .line 243
            iconst_1
            istore 4 /* error */
        26: .line 244
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "sessionIdGeneratorBase.randomAlgorithm"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 245
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            aastore
        28: .line 244
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        29: .line 245
            aload 5 /* e */
        30: .line 244
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.security.NoSuchAlgorithmException e
        31: goto 39
        32: .line 246
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 5 /* e */
        start local 5 // java.security.NoSuchProviderException e
        33: .line 247
            iconst_1
            istore 4 /* error */
        34: .line 248
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "sessionIdGeneratorBase.randomProvider"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        35: .line 249
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomProvider:Ljava/lang/String;
            aastore
        36: .line 248
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        37: .line 249
            aload 5 /* e */
        38: .line 248
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.security.NoSuchProviderException e
        39: .line 253
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ifnonnull 48
            iload 4 /* error */
            ifeq 48
        40: .line 256
            ldc "SHA1PRNG"
            invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
            astore 1 /* result */
        41: .line 257
            goto 48
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        42: astore 5 /* e */
        start local 5 // java.security.NoSuchAlgorithmException e
        43: .line 258
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "sessionIdGeneratorBase.randomAlgorithm"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        44: .line 259
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.secureRandomAlgorithm:Ljava/lang/String;
            aastore
        45: .line 258
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        46: .line 259
            aload 5 /* e */
        47: .line 258
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.security.NoSuchAlgorithmException e
        48: .line 263
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ifnonnull 50
        49: .line 265
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            astore 1 /* result */
        50: .line 269
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.security.SecureRandom.nextInt:()I
            pop
        51: .line 271
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* t2 */
        start local 5 // long t2
        52: .line 272
            lload 5 /* t2 */
            lload 2 /* t1 */
            lsub
            ldc 100
            lcmp
            ifle 56
        53: .line 273
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.util.SessionIdGeneratorBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "sessionIdGeneratorBase.createRandom"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        54: .line 274
            aload 1 /* result */
            invokevirtual java.security.SecureRandom.getAlgorithm:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            lload 5 /* t2 */
            lload 2 /* t1 */
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        55: .line 273
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        56: .line 276
      StackMap locals: long
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 5 // long t2
        end local 4 // boolean error
        end local 2 // long t1
        end local 1 // java.security.SecureRandom result
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   57     0    this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
            1   57     1  result  Ljava/security/SecureRandom;
            2   57     2      t1  J
            4    5     4   clazz  Ljava/lang/Class<*>;
            7   12     4       e  Ljava/lang/Exception;
           13   57     4   error  Z
           25   31     5       e  Ljava/security/NoSuchAlgorithmException;
           33   39     5       e  Ljava/security/NoSuchProviderException;
           43   48     5       e  Ljava/security/NoSuchAlgorithmException;
           52   57     5      t2  J
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
          14    23      24  Class java.security.NoSuchAlgorithmException
          14    23      32  Class java.security.NoSuchProviderException
          40    41      42  Class java.security.NoSuchAlgorithmException

  protected void initInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 283
            return
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void startInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 289
            aload 0 /* this */
            invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId:()Ljava/lang/String;
            pop
         1: .line 291
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.setState:(Lorg/apache/catalina/LifecycleState;)V
         2: .line 292
            return
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void stopInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 297
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.util.SessionIdGeneratorBase.setState:(Lorg/apache/catalina/LifecycleState;)V
         1: .line 298
            aload 0 /* this */
            getfield org.apache.catalina.util.SessionIdGeneratorBase.randoms:Ljava/util/Queue;
            invokeinterface java.util.Queue.clear:()V
         2: .line 299
            return
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void destroyInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
         0: .line 305
            return
        end local 0 // org.apache.catalina.util.SessionIdGeneratorBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/SessionIdGeneratorBase;
    Exceptions:
      throws org.apache.catalina.LifecycleException
}
SourceFile: "SessionIdGeneratorBase.java"