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 final byte[] rndTab;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 436
sipush 255
newarray 8
dup
iconst_0
1: .line 437
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 438
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 439
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 440
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 441
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 442
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 443
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 444
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 445
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 446
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 447
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 448
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 449
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 450
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 451
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 452
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 453
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 454
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 455
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 456
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 457
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 458
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 459
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 460
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 461
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 462
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 436
putstatic sun.security.provider.SeedGenerator$ThreadedSeedGenerator.rndTab:[B
28: .line 463
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 282
aload 0 /* this */
invokespecial sun.security.provider.SeedGenerator.<init>:()V
1: .line 283
aload 0 /* this */
bipush 20
newarray 8
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
2: .line 284
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 289
ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
pop
4: .line 290
goto 9
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.security.NoSuchAlgorithmException
5: astore 1 /* e */
start local 1 // java.security.NoSuchAlgorithmException e
6: .line 291
new java.lang.InternalError
dup
ldc "internal error: SHA-1 not available."
7: .line 292
aload 1 /* e */
8: .line 291
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 // java.security.NoSuchAlgorithmException e
9: .line 295
StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.ThreadGroup
astore 1 /* finalsg */
start local 1 // java.lang.ThreadGroup[] finalsg
10: .line 297
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
11: .line 296
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
12: .line 317
aload 0 /* this */
aload 1 /* finalsg */
iconst_0
aaload
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
13: .line 318
aload 2 /* t */
invokevirtual java.lang.Thread.start:()V
14: .line 319
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 15 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
6 9 1 e Ljava/security/NoSuchAlgorithmException;
10 15 1 finalsg [Ljava/lang/ThreadGroup;
12 15 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=8, locals=7, args_size=1
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
0: .line 330
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 1
monitorenter
1: .line 331
goto 3
2: .line 332
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
3: .line 331
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 330
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: .line 337
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* v */
start local 3 // byte v
9: .line 340
iconst_0
dup
istore 2 /* quanta */
start local 2 // int quanta
10: istore 1 /* counter */
start local 1 // int counter
11: .line 341
goto 32
12: .line 345
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 346
new java.lang.Thread
dup
14: .line 347
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
aload 4 /* bt */
ldc "SeedGenerator Thread"
lconst_0
15: .line 348
iconst_0
16: .line 346
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
astore 5 /* t */
start local 5 // java.lang.Thread t
17: .line 349
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
18: .line 350
goto 23
StackMap locals:
StackMap stack: java.lang.Exception
19: astore 4 /* e */
start local 4 // java.lang.Exception e
20: .line 351
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread creation error."
21: .line 352
aload 4 /* e */
22: .line 351
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 // java.lang.Exception e
23: .line 357
StackMap locals:
StackMap stack:
iconst_0
istore 4 /* latch */
start local 4 // int latch
24: .line 358
invokestatic java.lang.System.nanoTime:()J
lstore 5 /* startTime */
start local 5 // long startTime
25: .line 359
goto 28
26: .line 360
StackMap locals: int long
StackMap stack:
aload 0 /* this */
dup
monitorenter
monitorexit
27: .line 362
iload 4 /* latch */
iconst_1
iadd
ldc 536870911
iand
istore 4 /* latch */
28: .line 359
StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 5 /* startTime */
lsub
ldc 250000000
lcmp
iflt 26
29: .line 367
iload 3 /* v */
getstatic sun.security.provider.SeedGenerator$ThreadedSeedGenerator.rndTab:[B
iload 4 /* latch */
sipush 255
irem
baload
ixor
i2b
istore 3 /* v */
30: .line 368
iload 1 /* counter */
iload 4 /* latch */
iadd
istore 1 /* counter */
end local 5 // long startTime
end local 4 // int latch
31: .line 341
iinc 2 /* quanta */ 1
StackMap locals:
StackMap stack:
32: iload 1 /* counter */
ldc 64000
if_icmpge 34
iload 2 /* quanta */
bipush 6
33: .line 340
if_icmplt 12
34: .line 373
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 4
monitorenter
35: .line 374
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
36: .line 375
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
37: .line 376
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
38: .line 377
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 40
39: .line 378
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
40: .line 381
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
41: .line 373
aload 4
monitorexit
42: goto 0
StackMap locals:
StackMap stack: java.lang.Throwable
43: aload 4
monitorexit
44: athrow
end local 3 // byte v
end local 2 // int quanta
end local 1 // int counter
45: .line 384
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.lang.Exception
astore 1 /* e */
start local 1 // java.lang.Exception e
46: .line 385
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread generated an exception."
47: .line 386
aload 1 /* e */
48: .line 385
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 // java.lang.Exception e
end local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
11 45 1 counter I
10 45 2 quanta I
9 45 3 v B
13 18 4 bt Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator$BogusThread;
17 18 5 t Ljava/lang/Thread;
20 23 4 e Ljava/lang/Exception;
24 31 4 latch I
25 31 5 startTime J
46 49 1 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 any
6 7 6 any
12 18 19 Class java.lang.Exception
35 42 43 any
43 44 43 any
0 45 45 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 392
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 4
2: .line 393
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 392
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 395
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=4, locals=3, args_size=1
start local 0 // sun.security.provider.SeedGenerator$ThreadedSeedGenerator this
0: .line 402
aload 0 /* this */
dup
astore 2
monitorenter
1: .line 403
goto 3
2: .line 404
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator top sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
3: .line 403
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifle 2
4: .line 402
aload 2
monitorexit
5: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: .line 407
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.lang.Exception
astore 2 /* e */
start local 2 // java.lang.Exception e
9: .line 408
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifgt 13
10: .line 409
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread generated an exception."
11: .line 410
aload 2 /* e */
12: .line 409
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 // java.lang.Exception e
13: .line 414
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 2
monitorenter
14: .line 416
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 */
start local 1 // byte b
15: .line 417
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
16: .line 418
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
iconst_1
iadd
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
17: .line 419
aload 0 /* this */
dup
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
iconst_1
isub
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
18: .line 420
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 20
19: .line 421
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
20: .line 426
StackMap locals: int sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
21: .line 414
aload 2
monitorexit
22: goto 25
end local 1 // byte b
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator top sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
start local 1 // byte b
25: .line 429
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator int
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 26 0 this Lsun/security/provider/SeedGenerator$ThreadedSeedGenerator;
15 23 1 b B
25 26 1 b B
9 13 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 any
6 7 6 any
0 8 8 Class java.lang.Exception
14 22 23 any
23 24 23 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