class sun.security.provider.SeedGenerator$ThreadedSeedGenerator extends sun.security.provider.SeedGenerator implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
super_class: sun.security.provider.SeedGenerator
{
private byte[] pool;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int start;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int end;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int count;
descriptor: I
flags: (0x0002) ACC_PRIVATE
java.lang.ThreadGroup seedGroup;
descriptor: Ljava/lang/ThreadGroup;
flags: (0x0000)
private static byte[] rndTab;
descriptor: [B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 419
sipush 255
newarray 8
dup
iconst_0
1: .line 420
bipush 56
bastore
dup
iconst_1
bipush 30
bastore
dup
iconst_2
bipush -107
bastore
dup
iconst_3
bipush -6
bastore
dup
iconst_4
bipush -86
bastore
dup
iconst_5
bipush 25
bastore
dup
bipush 6
bipush -83
bastore
dup
bipush 7
bipush 75
bastore
dup
bipush 8
bipush -12
bastore
dup
bipush 9
bipush -64
bastore
dup
bipush 10
2: .line 421
iconst_5
bastore
dup
bipush 11
bipush -128
bastore
dup
bipush 12
bipush 78
bastore
dup
bipush 13
bipush 21
bastore
dup
bipush 14
bipush 16
bastore
dup
bipush 15
bipush 32
bastore
dup
bipush 16
bipush 70
bastore
dup
bipush 17
bipush -81
bastore
dup
bipush 18
bipush 37
bastore
dup
bipush 19
bipush -51
bastore
dup
bipush 20
3: .line 422
bipush -43
bastore
dup
bipush 21
bipush -46
bastore
dup
bipush 22
bipush -108
bastore
dup
bipush 23
bipush 87
bastore
dup
bipush 24
bipush 29
bastore
dup
bipush 25
bipush 17
bastore
dup
bipush 26
bipush -55
bastore
dup
bipush 27
bipush 22
bastore
dup
bipush 28
bipush -11
bastore
dup
bipush 29
bipush -111
bastore
dup
bipush 30
4: .line 423
bipush -115
bastore
dup
bipush 31
bipush 84
bastore
dup
bipush 32
bipush -100
bastore
dup
bipush 33
bipush 108
bastore
dup
bipush 34
bipush -45
bastore
dup
bipush 35
bipush -15
bastore
dup
bipush 36
bipush -98
bastore
dup
bipush 37
bipush 72
bastore
dup
bipush 38
bipush -33
bastore
dup
bipush 39
bipush -28
bastore
dup
bipush 40
5: .line 424
bipush 31
bastore
dup
bipush 41
bipush -52
bastore
dup
bipush 42
bipush -37
bastore
dup
bipush 43
bipush -117
bastore
dup
bipush 44
bipush -97
bastore
dup
bipush 45
bipush -27
bastore
dup
bipush 46
bipush 93
bastore
dup
bipush 47
bipush -123
bastore
dup
bipush 48
bipush 47
bastore
dup
bipush 49
bipush 126
bastore
dup
bipush 50
6: .line 425
bipush -80
bastore
dup
bipush 51
bipush -62
bastore
dup
bipush 52
bipush -93
bastore
dup
bipush 53
bipush -79
bastore
dup
bipush 54
bipush 61
bastore
dup
bipush 55
bipush -96
bastore
dup
bipush 56
bipush -65
bastore
dup
bipush 57
bipush -5
bastore
dup
bipush 58
bipush -47
bastore
dup
bipush 59
bipush -119
bastore
dup
bipush 60
7: .line 426
bipush 14
bastore
dup
bipush 61
bipush 89
bastore
dup
bipush 62
bipush 81
bastore
dup
bipush 63
bipush -118
bastore
dup
bipush 64
bipush -88
bastore
dup
bipush 65
bipush 20
bastore
dup
bipush 66
bipush 67
bastore
dup
bipush 67
bipush -126
bastore
dup
bipush 68
bipush -113
bastore
dup
bipush 69
bipush 60
bastore
dup
bipush 70
8: .line 427
bipush -102
bastore
dup
bipush 71
bipush 55
bastore
dup
bipush 72
bipush 110
bastore
dup
bipush 73
bipush 28
bastore
dup
bipush 74
bipush 85
bastore
dup
bipush 75
bipush 121
bastore
dup
bipush 76
bipush 122
bastore
dup
bipush 77
bipush -58
bastore
dup
bipush 78
iconst_2
bastore
dup
bipush 79
bipush 45
bastore
dup
bipush 80
9: .line 428
bipush 43
bastore
dup
bipush 81
bipush 24
bastore
dup
bipush 82
bipush -9
bastore
dup
bipush 83
bipush 103
bastore
dup
bipush 84
bipush -13
bastore
dup
bipush 85
bipush 102
bastore
dup
bipush 86
bipush -68
bastore
dup
bipush 87
bipush -54
bastore
dup
bipush 88
bipush -101
bastore
dup
bipush 89
bipush -104
bastore
dup
bipush 90
10: .line 429
bipush 19
bastore
dup
bipush 91
bipush 13
bastore
dup
bipush 92
bipush -39
bastore
dup
bipush 93
bipush -26
bastore
dup
bipush 94
bipush -103
bastore
dup
bipush 95
bipush 62
bastore
dup
bipush 96
bipush 77
bastore
dup
bipush 97
bipush 51
bastore
dup
bipush 98
bipush 44
bastore
dup
bipush 99
bipush 111
bastore
dup
bipush 100
11: .line 430
bipush 73
bastore
dup
bipush 101
bipush 18
bastore
dup
bipush 102
bipush -127
bastore
dup
bipush 103
bipush -82
bastore
dup
bipush 104
iconst_4
bastore
dup
bipush 105
bipush -30
bastore
dup
bipush 106
bipush 11
bastore
dup
bipush 107
bipush -99
bastore
dup
bipush 108
bipush -74
bastore
dup
bipush 109
bipush 40
bastore
dup
bipush 110
12: .line 431
bipush -89
bastore
dup
bipush 111
bipush 42
bastore
dup
bipush 112
bipush -76
bastore
dup
bipush 113
bipush -77
bastore
dup
bipush 114
bipush -94
bastore
dup
bipush 115
bipush -35
bastore
dup
bipush 116
bipush -69
bastore
dup
bipush 117
bipush 35
bastore
dup
bipush 118
bipush 120
bastore
dup
bipush 119
bipush 76
bastore
dup
bipush 120
13: .line 432
bipush 33
bastore
dup
bipush 121
bipush -73
bastore
dup
bipush 122
bipush -7
bastore
dup
bipush 123
bipush 82
bastore
dup
bipush 124
bipush -25
bastore
dup
bipush 125
bipush -10
bastore
dup
bipush 126
bipush 88
bastore
dup
bipush 127
bipush 125
bastore
dup
sipush 128
bipush -112
bastore
dup
sipush 129
bipush 58
bastore
dup
sipush 130
14: .line 433
bipush 83
bastore
dup
sipush 131
bipush 95
bastore
dup
sipush 132
bipush 6
bastore
dup
sipush 133
bipush 10
bastore
dup
sipush 134
bipush 98
bastore
dup
sipush 135
bipush -34
bastore
dup
sipush 136
bipush 80
bastore
dup
sipush 137
bipush 15
bastore
dup
sipush 138
bipush -91
bastore
dup
sipush 139
bipush 86
bastore
dup
sipush 140
15: .line 434
bipush -19
bastore
dup
sipush 141
bipush 52
bastore
dup
sipush 142
bipush -17
bastore
dup
sipush 143
bipush 117
bastore
dup
sipush 144
bipush 49
bastore
dup
sipush 145
bipush -63
bastore
dup
sipush 146
bipush 118
bastore
dup
sipush 147
bipush -90
bastore
dup
sipush 148
bipush 36
bastore
dup
sipush 149
bipush -116
bastore
dup
sipush 150
16: .line 435
bipush -40
bastore
dup
sipush 151
bipush -71
bastore
dup
sipush 152
bipush 97
bastore
dup
sipush 153
bipush -53
bastore
dup
sipush 154
bipush -109
bastore
dup
sipush 155
bipush -85
bastore
dup
sipush 156
bipush 109
bastore
dup
sipush 157
bipush -16
bastore
dup
sipush 158
bipush -3
bastore
dup
sipush 159
bipush 104
bastore
dup
sipush 160
17: .line 436
bipush -95
bastore
dup
sipush 161
bipush 68
bastore
dup
sipush 162
bipush 54
bastore
dup
sipush 163
bipush 34
bastore
dup
sipush 164
bipush 26
bastore
dup
sipush 165
bipush 114
bastore
dup
sipush 166
iconst_m1
bastore
dup
sipush 167
bipush 106
bastore
dup
sipush 168
bipush -121
bastore
dup
sipush 169
iconst_3
bastore
dup
sipush 170
18: .line 437
bipush 66
bastore
dup
sipush 172
bipush 100
bastore
dup
sipush 173
bipush -84
bastore
dup
sipush 174
bipush 57
bastore
dup
sipush 175
bipush 107
bastore
dup
sipush 176
bipush 119
bastore
dup
sipush 177
bipush -42
bastore
dup
sipush 178
bipush 112
bastore
dup
sipush 179
bipush -61
bastore
dup
sipush 180
19: .line 438
iconst_1
bastore
dup
sipush 181
bipush 48
bastore
dup
sipush 182
bipush 38
bastore
dup
sipush 183
bipush 12
bastore
dup
sipush 184
bipush -56
bastore
dup
sipush 185
bipush -57
bastore
dup
sipush 186
bipush 39
bastore
dup
sipush 187
bipush -106
bastore
dup
sipush 188
bipush -72
bastore
dup
sipush 189
bipush 41
bastore
dup
sipush 190
20: .line 439
bipush 7
bastore
dup
sipush 191
bipush 71
bastore
dup
sipush 192
bipush -29
bastore
dup
sipush 193
bipush -59
bastore
dup
sipush 194
bipush -8
bastore
dup
sipush 195
bipush -38
bastore
dup
sipush 196
bipush 79
bastore
dup
sipush 197
bipush -31
bastore
dup
sipush 198
bipush 124
bastore
dup
sipush 199
bipush -124
bastore
dup
sipush 200
21: .line 440
bipush 8
bastore
dup
sipush 201
bipush 91
bastore
dup
sipush 202
bipush 116
bastore
dup
sipush 203
bipush 99
bastore
dup
sipush 204
bipush -4
bastore
dup
sipush 205
bipush 9
bastore
dup
sipush 206
bipush -36
bastore
dup
sipush 207
bipush -78
bastore
dup
sipush 208
bipush 63
bastore
dup
sipush 209
bipush -49
bastore
dup
sipush 210
22: .line 441
bipush -67
bastore
dup
sipush 211
bipush -87
bastore
dup
sipush 212
bipush 59
bastore
dup
sipush 213
bipush 101
bastore
dup
sipush 214
bipush -32
bastore
dup
sipush 215
bipush 92
bastore
dup
sipush 216
bipush 94
bastore
dup
sipush 217
bipush 53
bastore
dup
sipush 218
bipush -41
bastore
dup
sipush 219
bipush 115
bastore
dup
sipush 220
23: .line 442
bipush -66
bastore
dup
sipush 221
bipush -70
bastore
dup
sipush 222
bipush -122
bastore
dup
sipush 223
bipush 50
bastore
dup
sipush 224
bipush -50
bastore
dup
sipush 225
bipush -22
bastore
dup
sipush 226
bipush -20
bastore
dup
sipush 227
bipush -18
bastore
dup
sipush 228
bipush -21
bastore
dup
sipush 229
bipush 23
bastore
dup
sipush 230
24: .line 443
bipush -2
bastore
dup
sipush 231
bipush -48
bastore
dup
sipush 232
bipush 96
bastore
dup
sipush 233
bipush 65
bastore
dup
sipush 234
bipush -105
bastore
dup
sipush 235
bipush 123
bastore
dup
sipush 236
bipush -14
bastore
dup
sipush 237
bipush -110
bastore
dup
sipush 238
bipush 69
bastore
dup
sipush 239
bipush -24
bastore
dup
sipush 240
25: .line 444
bipush -120
bastore
dup
sipush 241
bipush -75
bastore
dup
sipush 242
bipush 74
bastore
dup
sipush 243
bipush 127
bastore
dup
sipush 244
bipush -60
bastore
dup
sipush 245
bipush 113
bastore
dup
sipush 246
bipush 90
bastore
dup
sipush 247
bipush -114
bastore
dup
sipush 248
bipush 105
bastore
dup
sipush 249
bipush 46
bastore
dup
sipush 250
26: .line 445
bipush 27
bastore
dup
sipush 251
bipush -125
bastore
dup
sipush 252
bipush -23
bastore
dup
sipush 253
bipush -44
bastore
dup
sipush 254
bipush 64
bastore
27: .line 419
putstatic sun.security.provider.SeedGenerator$ThreadedSeedGenerator.rndTab:[B
28: .line 446
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
0: .line 277
aload 0 /* this */
invokespecial sun.security.provider.SeedGenerator.<init>:()V
1: .line 278
aload 0 /* this */
bipush 20
newarray 8
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
2: .line 279
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
3: .line 284
ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
pop
4: .line 285
goto 7
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.security.NoSuchAlgorithmException
5: pop
6: .line 286
new java.lang.InternalError
dup
ldc "internal error: SHA-1 not available."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
7: .line 289
StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.ThreadGroup
astore 1 /* finalsg */
start local 1 // java.lang.ThreadGroup[] finalsg
8: .line 291
new sun.security.provider.SeedGenerator$ThreadedSeedGenerator$1
dup
aload 0 /* this */
aload 1 /* finalsg */
invokespecial sun.security.provider.SeedGenerator$ThreadedSeedGenerator$1.<init>:(Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;[Ljava/lang/ThreadGroup;)V
9: .line 290
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Thread
astore 2 /* t */
start local 2 // java.lang.Thread t
10: .line 307
aload 0 /* this */
aload 1 /* finalsg */
iconst_0
aaload
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
11: .line 308
aload 2 /* t */
invokevirtual java.lang.Thread.start:()V
12: .line 309
return
end local 2 // java.lang.Thread t
end local 1 // java.lang.ThreadGroup[] finalsg
end local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
8 13 1 finalsg [Ljava/lang/ThreadGroup;
10 13 2 t Ljava/lang/Thread;
Exception table:
from to target type
3 4 5 Class java.security.NoSuchAlgorithmException
public final void run();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=7, args_size=1
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
0: .line 319
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 1
monitorenter
1: .line 320
goto 3
2: .line 321
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
3: .line 320
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
arraylength
if_icmpge 2
4: .line 319
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: .line 325
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* v */
start local 3 // byte v
9: .line 328
iconst_0
dup
istore 2 /* quanta */
start local 2 // int quanta
10: istore 1 /* counter */
start local 1 // int counter
11: goto 30
12: .line 333
StackMap locals: int int int
StackMap stack:
new sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread
dup
invokespecial sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread.<init>:()V
astore 4 /* bt */
start local 4 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread bt
13: .line 334
new java.lang.Thread
dup
14: .line 335
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
aload 4 /* bt */
ldc "SeedGenerator Thread"
15: .line 334
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
astore 5 /* t */
start local 5 // java.lang.Thread t
16: .line 336
aload 5 /* t */
invokevirtual java.lang.Thread.start:()V
end local 5 // java.lang.Thread t
end local 4 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread bt
17: .line 337
goto 20
StackMap locals:
StackMap stack: java.lang.Exception
18: pop
19: .line 338
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread creation error."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
20: .line 344
StackMap locals:
StackMap stack:
iconst_0
istore 4 /* latch */
start local 4 // int latch
21: .line 345
iconst_0
istore 4 /* latch */
22: .line 346
invokestatic java.lang.System.currentTimeMillis:()J
ldc 250
ladd
lstore 5 /* l */
start local 5 // long l
23: .line 347
goto 26
24: .line 348
StackMap locals: int long
StackMap stack:
aload 0 /* this */
dup
monitorenter
monitorexit
25: .line 349
iinc 4 /* latch */ 1
26: .line 347
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 5 /* l */
lcmp
iflt 24
27: .line 354
iload 3 /* v */
getstatic sun.security.provider.SeedGenerator$ThreadedSeedGenerator.rndTab:[B
iload 4 /* latch */
sipush 255
irem
baload
ixor
i2b
istore 3 /* v */
28: .line 355
iload 1 /* counter */
iload 4 /* latch */
iadd
istore 1 /* counter */
end local 5 // long l
end local 4 // int latch
29: .line 329
iinc 2 /* quanta */ 1
30: .line 328
StackMap locals:
StackMap stack:
iload 1 /* counter */
ldc 64000
if_icmpge 31
iload 2 /* quanta */
bipush 6
if_icmplt 12
31: .line 360
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 4
monitorenter
32: .line 361
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
iload 3 /* v */
bastore
33: .line 362
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
34: .line 363
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
35: .line 364
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
arraylength
if_icmplt 37
36: .line 365
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
37: .line 367
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
38: .line 360
aload 4
monitorexit
39: goto 0
StackMap locals:
StackMap stack: java.lang.Throwable
40: aload 4
monitorexit
41: athrow
end local 3 // byte v
end local 2 // int quanta
end local 1 // int counter
42: .line 370
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.lang.Exception
pop
43: .line 371
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread generated an exception."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
11 42 1 counter I
10 42 2 quanta I
9 42 3 v B
13 17 4 bt Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator$BogusThread;
16 17 5 t Ljava/lang/Thread;
21 29 4 latch I
23 29 5 l J
Exception table:
from to target type
1 5 6 any
6 7 6 any
12 17 18 Class java.lang.Exception
32 39 40 any
40 41 40 any
0 42 42 Class java.lang.Exception
void getSeedBytes(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
start local 1 // byte[] result
0: .line 378
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 4
2: .line 379
StackMap locals: int
StackMap stack:
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
invokevirtual sun.security.provider.SeedGenerator$ThreadedSeedGenerator.getSeedByte:()B
bastore
3: .line 378
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 2 /* i */
aload 1 /* result */
arraylength
if_icmplt 2
end local 2 // int i
5: .line 381
return
end local 1 // byte[] result
end local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
0 6 1 result [B
1 5 2 i I
MethodParameters:
Name Flags
result
byte getSeedByte();
descriptor: ()B
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
0: .line 384
iconst_0
istore 1 /* b */
start local 1 // byte b
1: .line 388
aload 0 /* this */
dup
astore 2
monitorenter
2: .line 389
goto 4
3: .line 390
StackMap locals: int sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
4: .line 389
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifle 3
5: .line 388
aload 2
monitorexit
6: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: .line 392
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator int
StackMap stack: java.lang.Exception
pop
10: .line 393
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifgt 12
11: .line 394
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread generated an exception."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
12: .line 398
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 2
monitorenter
13: .line 400
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
baload
istore 1 /* b */
14: .line 401
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
iconst_0
bastore
15: .line 402
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
16: .line 403
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
iconst_1
isub
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
17: .line 404
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
arraylength
if_icmpne 19
18: .line 405
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
19: .line 409
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
20: .line 398
aload 2
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 2
monitorexit
23: athrow
24: .line 412
StackMap locals:
StackMap stack:
iload 1 /* b */
ireturn
end local 1 // byte b
end local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
1 25 1 b B
Exception table:
from to target type
2 6 7 any
7 8 7 any
1 9 9 Class java.lang.Exception
13 21 22 any
22 23 22 any
}
SourceFile: "SeedGenerator.java"
NestHost: sun.security.provider.SeedGenerator
InnerClasses:
private ThreadedSeedGenerator = sun.security.provider.SeedGenerator$ThreadedSeedGenerator of sun.security.provider.SeedGenerator
sun.security.provider.SeedGenerator$ThreadedSeedGenerator$1
private BogusThread = sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread of sun.security.provider.SeedGenerator$ThreadedSeedGenerator