public class org.aspectj.util.FileUtil$Pipe implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.aspectj.util.FileUtil$Pipe
super_class: java.lang.Object
{
private final java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.OutputStream out;
descriptor: Ljava/io/OutputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long sleep;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.io.ByteArrayOutputStream snoop;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0002) ACC_PRIVATE
private long totalWritten;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.lang.Throwable thrown;
descriptor: Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
private boolean halt;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final boolean closeInput;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean closeOutput;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean finishStream;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean done;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(java.io.InputStream, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
ldc 100
iconst_0
iconst_0
invokespecial org.aspectj.util.FileUtil$Pipe.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;JZZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/aspectj/util/FileUtil$Pipe;
0 2 1 in Ljava/io/InputStream;
0 2 2 out Ljava/io/OutputStream;
MethodParameters:
Name Flags
in
out
void <init>(java.io.InputStream, java.io.OutputStream, long, boolean, boolean);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;JZZ)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "in"
invokestatic org.aspectj.util.LangUtil.throwIaxIfNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 2
ldc "out"
invokestatic org.aspectj.util.LangUtil.throwIaxIfNull:(Ljava/lang/Object;Ljava/lang/String;)V
3: aload 0
aload 1
putfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
4: aload 0
aload 2
putfield org.aspectj.util.FileUtil$Pipe.out:Ljava/io/OutputStream;
5: aload 0
iload 5
putfield org.aspectj.util.FileUtil$Pipe.closeInput:Z
6: aload 0
iload 6
putfield org.aspectj.util.FileUtil$Pipe.closeOutput:Z
7: aload 0
lconst_0
ldc 60000
lload 3
invokestatic java.lang.Math.max:(JJ)J
invokestatic java.lang.Math.min:(JJ)J
putfield org.aspectj.util.FileUtil$Pipe.sleep:J
8: return
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/aspectj/util/FileUtil$Pipe;
0 9 1 in Ljava/io/InputStream;
0 9 2 out Ljava/io/OutputStream;
0 9 3 sleep J
0 9 5 closeInput Z
0 9 6 closeOutput Z
MethodParameters:
Name Flags
in
out
sleep
closeInput
closeOutput
public void setSnoop(java.io.ByteArrayOutputStream);
descriptor: (Ljava/io/ByteArrayOutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.aspectj.util.FileUtil$Pipe.snoop:Ljava/io/ByteArrayOutputStream;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/aspectj/util/FileUtil$Pipe;
0 2 1 snoop Ljava/io/ByteArrayOutputStream;
MethodParameters:
Name Flags
snoop
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
lconst_0
putfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
1: aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
sipush 4096
newarray 8
astore 1
start local 1 4: aload 0
getfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
aload 1
iconst_0
sipush 4096
invokevirtual java.io.InputStream.read:([BII)I
istore 2
start local 2 5: goto 18
6: StackMap locals: byte[] int
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.out:Ljava/io/OutputStream;
aload 1
iconst_0
iload 2
invokevirtual java.io.OutputStream.write:([BII)V
7: aload 0
getfield org.aspectj.util.FileUtil$Pipe.snoop:Ljava/io/ByteArrayOutputStream;
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 3
aload 1
iconst_0
iload 2
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
10: StackMap locals: java.io.ByteArrayOutputStream
StackMap stack:
aload 0
dup
getfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
iload 2
i2l
ladd
putfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
11: aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifeq 13
aload 0
getfield org.aspectj.util.FileUtil$Pipe.finishStream:Z
ifne 13
12: goto 47
13: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifne 15
lconst_0
aload 0
getfield org.aspectj.util.FileUtil$Pipe.sleep:J
lcmp
ifge 15
14: aload 0
getfield org.aspectj.util.FileUtil$Pipe.sleep:J
invokestatic java.lang.Thread.sleep:(J)V
15: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifeq 17
aload 0
getfield org.aspectj.util.FileUtil$Pipe.finishStream:Z
ifne 17
16: goto 47
17: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
aload 1
iconst_0
sipush 4096
invokevirtual java.io.InputStream.read:([BII)I
istore 2
end local 3 18: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifeq 19
aload 0
getfield org.aspectj.util.FileUtil$Pipe.finishStream:Z
ifeq 19
iload 2
ifgt 6
StackMap locals:
StackMap stack:
19: aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifne 47
iconst_m1
iload 2
if_icmpne 6
end local 2 end local 1 20: goto 47
StackMap locals: org.aspectj.util.FileUtil$Pipe
StackMap stack: java.lang.Throwable
21: astore 1
start local 1 22: aload 0
aload 1
putfield org.aspectj.util.FileUtil$Pipe.thrown:Ljava/lang/Throwable;
end local 1 23: aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.halt:Z
24: aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeInput:Z
ifeq 28
25: aload 0
getfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
26: goto 28
StackMap locals:
StackMap stack: java.io.IOException
27: pop
28: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeOutput:Z
ifeq 32
29: aload 0
getfield org.aspectj.util.FileUtil$Pipe.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
30: goto 32
StackMap locals:
StackMap stack: java.io.IOException
31: pop
32: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.done:Z
33: aload 0
aload 0
getfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
aload 0
getfield org.aspectj.util.FileUtil$Pipe.thrown:Ljava/lang/Throwable;
invokevirtual org.aspectj.util.FileUtil$Pipe.completing:(JLjava/lang/Throwable;)V
goto 58
34: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
35: aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.halt:Z
36: aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeInput:Z
ifeq 40
37: aload 0
getfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
38: goto 40
StackMap locals: org.aspectj.util.FileUtil$Pipe top top top java.lang.Throwable
StackMap stack: java.io.IOException
39: pop
40: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeOutput:Z
ifeq 44
41: aload 0
getfield org.aspectj.util.FileUtil$Pipe.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
42: goto 44
StackMap locals:
StackMap stack: java.io.IOException
43: pop
44: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.done:Z
45: aload 0
aload 0
getfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
aload 0
getfield org.aspectj.util.FileUtil$Pipe.thrown:Ljava/lang/Throwable;
invokevirtual org.aspectj.util.FileUtil$Pipe.completing:(JLjava/lang/Throwable;)V
46: aload 4
athrow
47: StackMap locals: org.aspectj.util.FileUtil$Pipe
StackMap stack:
aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.halt:Z
48: aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeInput:Z
ifeq 52
49: aload 0
getfield org.aspectj.util.FileUtil$Pipe.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
50: goto 52
StackMap locals:
StackMap stack: java.io.IOException
51: pop
52: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.closeOutput:Z
ifeq 56
53: aload 0
getfield org.aspectj.util.FileUtil$Pipe.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
54: goto 56
StackMap locals:
StackMap stack: java.io.IOException
55: pop
56: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.done:Z
57: aload 0
aload 0
getfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
aload 0
getfield org.aspectj.util.FileUtil$Pipe.thrown:Ljava/lang/Throwable;
invokevirtual org.aspectj.util.FileUtil$Pipe.completing:(JLjava/lang/Throwable;)V
58: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/aspectj/util/FileUtil$Pipe;
4 20 1 buf [B
5 20 2 count I
8 18 3 mySnoop Ljava/io/ByteArrayOutputStream;
22 23 1 e Ljava/lang/Throwable;
Exception table:
from to target type
3 20 21 Class java.lang.Throwable
25 26 27 Class java.io.IOException
29 30 31 Class java.io.IOException
3 23 34 any
37 38 39 Class java.io.IOException
41 42 43 Class java.io.IOException
49 50 51 Class java.io.IOException
53 54 55 Class java.io.IOException
public boolean halt(boolean, boolean);
descriptor: (ZZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ifne 2
1: aload 0
iconst_1
putfield org.aspectj.util.FileUtil$Pipe.halt:Z
2: StackMap locals:
StackMap stack:
iload 1
ifeq 16
3: goto 15
4: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
5: aload 0
invokevirtual java.lang.Object.notifyAll:()V
6: aload 3
monitorexit
7: goto 10
StackMap locals: org.aspectj.util.FileUtil$Pipe int int org.aspectj.util.FileUtil$Pipe
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.done:Z
ifne 15
11: ldc 5
invokestatic java.lang.Thread.sleep:(J)V
12: goto 15
StackMap locals:
StackMap stack: java.lang.InterruptedException
13: pop
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.done:Z
ifeq 4
16: StackMap locals:
StackMap stack:
aload 0
getfield org.aspectj.util.FileUtil$Pipe.halt:Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/aspectj/util/FileUtil$Pipe;
0 17 1 wait Z
0 17 2 finishStream Z
Exception table:
from to target type
5 7 8 any
8 9 8 any
11 12 13 Class java.lang.InterruptedException
MethodParameters:
Name Flags
wait
finishStream
public long totalWritten();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.aspectj.util.FileUtil$Pipe.totalWritten:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/util/FileUtil$Pipe;
public java.lang.Throwable getThrown();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.aspectj.util.FileUtil$Pipe.thrown:Ljava/lang/Throwable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/util/FileUtil$Pipe;
protected void completing(long, java.lang.Throwable);
descriptor: (JLjava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=4, args_size=3
start local 0 start local 1 start local 3 0: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/util/FileUtil$Pipe;
0 1 1 totalWritten J
0 1 3 thrown Ljava/lang/Throwable;
MethodParameters:
Name Flags
totalWritten
thrown
}
SourceFile: "FileUtil.java"
NestHost: org.aspectj.util.FileUtil
InnerClasses:
public Pipe = org.aspectj.util.FileUtil$Pipe of org.aspectj.util.FileUtil