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 402
sipush 255
newarray 8
dup
iconst_0
1: .line 403
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 404
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 405
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 406
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 407
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 408
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 409
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 410
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 411
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 412
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 413
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 414
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 415
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 416
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 417
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 418
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 419
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 420
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 421
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 422
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 423
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 424
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 425
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 426
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 427
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 428
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 402
putstatic sun.security.provider.SeedGenerator$ThreadedSeedGenerator.rndTab:[B
28: .line 429
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 260
aload 0 /* this */
invokespecial sun.security.provider.SeedGenerator.<init>:()V
1: .line 261
aload 0 /* this */
bipush 20
newarray 8
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.pool:[B
2: .line 262
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 267
ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
pop
4: .line 268
goto 7
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.security.NoSuchAlgorithmException
5: pop
6: .line 269
new java.lang.InternalError
dup
ldc "internal error: SHA-1 not available."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
7: .line 272
StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.ThreadGroup
astore 1 /* finalsg */
start local 1 // java.lang.ThreadGroup[] finalsg
8: .line 274
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 273
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 290
aload 0 /* this */
aload 1 /* finalsg */
iconst_0
aaload
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
11: .line 291
aload 2 /* t */
invokevirtual java.lang.Thread.start:()V
12: .line 292
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 302
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 1
monitorenter
1: .line 303
goto 3
2: .line 304
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
3: .line 303
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 302
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: .line 308
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* v */
start local 3 // byte v
9: .line 311
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 316
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 317
new java.lang.Thread
dup
14: .line 318
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.seedGroup:Ljava/lang/ThreadGroup;
aload 4 /* bt */
ldc "SeedGenerator Thread"
15: .line 317
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 319
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 320
goto 20
StackMap locals:
StackMap stack: java.lang.Exception
18: pop
19: .line 321
new java.lang.InternalError
dup
ldc "internal error: SeedGenerator thread creation error."
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
20: .line 327
StackMap locals:
StackMap stack:
iconst_0
istore 4 /* latch */
start local 4 // int latch
21: .line 328
iconst_0
istore 4 /* latch */
22: .line 329
invokestatic java.lang.System.currentTimeMillis:()J
ldc 250
ladd
lstore 5 /* l */
start local 5 // long l
23: .line 330
goto 26
24: .line 331
StackMap locals: int long
StackMap stack:
aload 0 /* this */
dup
monitorenter
monitorexit
25: .line 332
iinc 4 /* latch */ 1
26: .line 330
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 5 /* l */
lcmp
iflt 24
27: .line 337
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 338
iload 1 /* counter */
iload 4 /* latch */
iadd
istore 1 /* counter */
end local 5 // long l
end local 4 // int latch
29: .line 312
iinc 2 /* quanta */ 1
30: .line 311
StackMap locals:
StackMap stack:
iload 1 /* counter */
ldc 64000
if_icmpge 31
iload 2 /* quanta */
bipush 6
if_icmplt 12
31: .line 343
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 4
monitorenter
32: .line 344
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 345
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 346
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 347
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 348
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.end:I
37: .line 350
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
38: .line 343
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 353
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack: java.lang.Exception
pop
43: .line 354
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 361
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 4
2: .line 362
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 361
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 364
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 367
iconst_0
istore 1 /* b */
start local 1 // byte b
1: .line 371
aload 0 /* this */
dup
astore 2
monitorenter
2: .line 372
goto 4
3: .line 373
StackMap locals: int sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.wait:()V
4: .line 372
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifle 3
5: .line 371
aload 2
monitorexit
6: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: .line 375
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator int
StackMap stack: java.lang.Exception
pop
10: .line 376
aload 0 /* this */
getfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.count:I
ifgt 12
11: .line 377
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 381
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
astore 2
monitorenter
13: .line 383
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 384
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 385
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 386
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 387
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 388
aload 0 /* this */
iconst_0
putfield sun.security.provider.SeedGenerator$ThreadedSeedGenerator.start:I
19: .line 392
StackMap locals: sun.security.provider.SeedGenerator$ThreadedSeedGenerator
StackMap stack:
aload 0 /* this */
invokevirtual java.lang.Object.notifyAll:()V
20: .line 381
aload 2
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 2
monitorexit
23: athrow
24: .line 395
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