public class java.io.PipedReader extends java.io.Reader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.io.PipedReader
super_class: java.io.Reader
{
boolean closedByWriter;
descriptor: Z
flags: (0x0000)
boolean closedByReader;
descriptor: Z
flags: (0x0000)
boolean connected;
descriptor: Z
flags: (0x0000)
java.lang.Thread readSide;
descriptor: Ljava/lang/Thread;
flags: (0x0000)
java.lang.Thread writeSide;
descriptor: Ljava/lang/Thread;
flags: (0x0000)
private static final int DEFAULT_PIPE_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
char[] buffer;
descriptor: [C
flags: (0x0000)
int in;
descriptor: I
flags: (0x0000)
int out;
descriptor: I
flags: (0x0000)
public void <init>(java.io.PipedWriter);
descriptor: (Ljava/io/PipedWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
sipush 1024
invokespecial java.io.PipedReader.<init>:(Ljava/io/PipedWriter;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/io/PipedReader;
0 2 1 src Ljava/io/PipedWriter;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public void <init>(java.io.PipedWriter, int);
descriptor: (Ljava/io/PipedWriter;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.io.Reader.<init>:()V
1: aload 0
iconst_0
putfield java.io.PipedReader.closedByWriter:Z
2: aload 0
iconst_0
putfield java.io.PipedReader.closedByReader:Z
3: aload 0
iconst_0
putfield java.io.PipedReader.connected:Z
4: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
5: aload 0
iconst_0
putfield java.io.PipedReader.out:I
6: aload 0
iload 2
invokevirtual java.io.PipedReader.initPipe:(I)V
7: aload 0
aload 1
invokevirtual java.io.PipedReader.connect:(Ljava/io/PipedWriter;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/io/PipedReader;
0 9 1 src Ljava/io/PipedWriter;
0 9 2 pipeSize I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
pipeSize
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.io.Reader.<init>:()V
1: aload 0
iconst_0
putfield java.io.PipedReader.closedByWriter:Z
2: aload 0
iconst_0
putfield java.io.PipedReader.closedByReader:Z
3: aload 0
iconst_0
putfield java.io.PipedReader.connected:Z
4: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
5: aload 0
iconst_0
putfield java.io.PipedReader.out:I
6: aload 0
sipush 1024
invokevirtual java.io.PipedReader.initPipe:(I)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/io/PipedReader;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.Reader.<init>:()V
1: aload 0
iconst_0
putfield java.io.PipedReader.closedByWriter:Z
2: aload 0
iconst_0
putfield java.io.PipedReader.closedByReader:Z
3: aload 0
iconst_0
putfield java.io.PipedReader.connected:Z
4: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
5: aload 0
iconst_0
putfield java.io.PipedReader.out:I
6: aload 0
iload 1
invokevirtual java.io.PipedReader.initPipe:(I)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/io/PipedReader;
0 8 1 pipeSize I
MethodParameters:
Name Flags
pipeSize
private void initPipe(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: new java.lang.IllegalArgumentException
dup
ldc "Pipe size <= 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
newarray 5
putfield java.io.PipedReader.buffer:[C
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/PipedReader;
0 4 1 pipeSize I
MethodParameters:
Name Flags
pipeSize
public void connect(java.io.PipedWriter);
descriptor: (Ljava/io/PipedWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.io.PipedWriter.connect:(Ljava/io/PipedReader;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/io/PipedReader;
0 2 1 src Ljava/io/PipedWriter;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
synchronized void receive(int);
descriptor: (I)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.PipedReader.connected:Z
ifne 2
1: new java.io.IOException
dup
ldc "Pipe not connected"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.closedByWriter:Z
ifne 3
aload 0
getfield java.io.PipedReader.closedByReader:Z
ifeq 4
3: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Pipe closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.readSide:Ljava/lang/Thread;
ifnull 6
aload 0
getfield java.io.PipedReader.readSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 6
5: new java.io.IOException
dup
ldc "Read end dead"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
7: goto 15
8: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.readSide:Ljava/lang/Thread;
ifnull 10
aload 0
getfield java.io.PipedReader.readSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 10
9: new java.io.IOException
dup
ldc "Pipe broken"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
11: aload 0
ldc 1000
invokevirtual java.lang.Object.wait:(J)V
12: goto 15
StackMap locals:
StackMap stack: java.lang.InterruptedException
13: pop
14: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
aload 0
getfield java.io.PipedReader.out:I
if_icmpeq 8
16: aload 0
getfield java.io.PipedReader.in:I
ifge 19
17: aload 0
iconst_0
putfield java.io.PipedReader.in:I
18: aload 0
iconst_0
putfield java.io.PipedReader.out:I
19: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.buffer:[C
aload 0
dup
getfield java.io.PipedReader.in:I
dup_x1
iconst_1
iadd
putfield java.io.PipedReader.in:I
iload 1
i2c
castore
20: aload 0
getfield java.io.PipedReader.in:I
aload 0
getfield java.io.PipedReader.buffer:[C
arraylength
if_icmplt 22
21: aload 0
iconst_0
putfield java.io.PipedReader.in:I
22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/io/PipedReader;
0 23 1 c I
Exception table:
from to target type
11 12 13 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
synchronized void receive(char[], int, int);
descriptor: ([CII)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
caload
invokevirtual java.io.PipedReader.receive:(I)V
2: StackMap locals:
StackMap stack:
iinc 3 -1
iload 3
ifge 1
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/PipedReader;
0 4 1 c [C
0 4 2 off I
0 4 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
off
len
synchronized void receivedLast();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield java.io.PipedReader.closedByWriter:Z
1: aload 0
invokevirtual java.lang.Object.notifyAll:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/PipedReader;
public synchronized int read();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield java.io.PipedReader.connected:Z
ifne 2
1: new java.io.IOException
dup
ldc "Pipe not connected"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.closedByReader:Z
ifeq 4
3: new java.io.IOException
dup
ldc "Pipe closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
ifnull 7
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 7
5: aload 0
getfield java.io.PipedReader.closedByWriter:Z
ifne 7
aload 0
getfield java.io.PipedReader.in:I
ifge 7
6: new java.io.IOException
dup
ldc "Write end dead"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield java.io.PipedReader.readSide:Ljava/lang/Thread;
8: iconst_2
istore 1
start local 1 9: goto 19
10: StackMap locals: int
StackMap stack:
aload 0
getfield java.io.PipedReader.closedByWriter:Z
ifeq 12
11: iconst_m1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
ifnull 14
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 14
iinc 1 -1
iload 1
ifge 14
13: new java.io.IOException
dup
ldc "Pipe broken"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
15: aload 0
ldc 1000
invokevirtual java.lang.Object.wait:(J)V
16: goto 19
StackMap locals:
StackMap stack: java.lang.InterruptedException
17: pop
18: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
iflt 10
20: aload 0
getfield java.io.PipedReader.buffer:[C
aload 0
dup
getfield java.io.PipedReader.out:I
dup_x1
iconst_1
iadd
putfield java.io.PipedReader.out:I
caload
istore 2
start local 2 21: aload 0
getfield java.io.PipedReader.out:I
aload 0
getfield java.io.PipedReader.buffer:[C
arraylength
if_icmplt 23
22: aload 0
iconst_0
putfield java.io.PipedReader.out:I
23: StackMap locals: int
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
aload 0
getfield java.io.PipedReader.out:I
if_icmpne 25
24: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
25: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/io/PipedReader;
9 26 1 trials I
21 26 2 ret I
Exception table:
from to target type
15 16 17 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
public synchronized int read(char[], int, int);
descriptor: ([CII)I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.io.PipedReader.connected:Z
ifne 2
1: new java.io.IOException
dup
ldc "Pipe not connected"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.closedByReader:Z
ifeq 4
3: new java.io.IOException
dup
ldc "Pipe closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
ifnull 7
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 7
5: aload 0
getfield java.io.PipedReader.closedByWriter:Z
ifne 7
aload 0
getfield java.io.PipedReader.in:I
ifge 7
6: new java.io.IOException
dup
ldc "Write end dead"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iload 2
iflt 9
iload 2
aload 1
arraylength
if_icmpgt 9
iload 3
iflt 9
8: iload 2
iload 3
iadd
aload 1
arraylength
if_icmpgt 9
iload 2
iload 3
iadd
ifge 10
9: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
iload 3
ifne 12
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.PipedReader.read:()I
istore 4
start local 4 13: iload 4
ifge 15
14: iconst_m1
ireturn
15: StackMap locals: int
StackMap stack:
aload 1
iload 2
iload 4
i2c
castore
16: iconst_1
istore 5
start local 5 17: goto 24
18: StackMap locals: int
StackMap stack:
aload 1
iload 2
iload 5
iadd
aload 0
getfield java.io.PipedReader.buffer:[C
aload 0
dup
getfield java.io.PipedReader.out:I
dup_x1
iconst_1
iadd
putfield java.io.PipedReader.out:I
caload
castore
19: iinc 5 1
20: aload 0
getfield java.io.PipedReader.out:I
aload 0
getfield java.io.PipedReader.buffer:[C
arraylength
if_icmplt 22
21: aload 0
iconst_0
putfield java.io.PipedReader.out:I
22: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
aload 0
getfield java.io.PipedReader.out:I
if_icmpne 24
23: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
24: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
iflt 25
iinc 3 -1
iload 3
ifgt 18
25: StackMap locals:
StackMap stack:
iload 5
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/io/PipedReader;
0 26 1 cbuf [C
0 26 2 off I
0 26 3 len I
13 26 4 c I
17 26 5 rlen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
off
len
public synchronized boolean ready();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.PipedReader.connected:Z
ifne 2
1: new java.io.IOException
dup
ldc "Pipe not connected"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.closedByReader:Z
ifeq 4
3: new java.io.IOException
dup
ldc "Pipe closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
ifnull 7
aload 0
getfield java.io.PipedReader.writeSide:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifne 7
5: aload 0
getfield java.io.PipedReader.closedByWriter:Z
ifne 7
aload 0
getfield java.io.PipedReader.in:I
ifge 7
6: new java.io.IOException
dup
ldc "Write end dead"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield java.io.PipedReader.in:I
ifge 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/io/PipedReader;
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_m1
putfield java.io.PipedReader.in:I
1: aload 0
iconst_1
putfield java.io.PipedReader.closedByReader:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/PipedReader;
Exceptions:
throws java.io.IOException
}
SourceFile: "PipedReader.java"