class com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList
super_class: java.lang.Object
{
private final java.util.List<java.io.OutputStream> outs;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/io/OutputStream;>;
private boolean seenException;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private java.util.Map<java.io.OutputStream, java.lang.String> reportedExceptions;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/io/OutputStream;Ljava/lang/String;>;
final com.oracle.truffle.api.impl.DispatchOutputStream this$0;
descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.impl.DispatchOutputStream);
descriptor: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.this$0:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
MethodParameters:
Name Flags
this$0 final
void add(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 2 1 outConsumer Ljava/io/OutputStream;
MethodParameters:
Name Flags
outConsumer
void remove(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
ifnull 4
3: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 9 1 outConsumer Ljava/io/OutputStream;
Exception table:
from to target type
2 5 6 any
6 7 6 any
MethodParameters:
Name Flags
outConsumer
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
void writeMulti(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList int top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 2
start local 2 2: aload 2
iload 1
invokevirtual java.io.OutputStream.write:(I)V
3: goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList int java.io.OutputStream java.util.Iterator
StackMap stack: java.lang.Throwable
4: astore 4
start local 4 5: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
ifne 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
iconst_1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "write(I)"
aload 2
aload 4
invokevirtual com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.handleException:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
end local 4 end local 2 9: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 11 1 b I
2 9 2 os Ljava/io/OutputStream;
5 9 4 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
b
void writeMulti(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 2
start local 2 2: aload 2
aload 1
invokevirtual java.io.OutputStream.write:([B)V
3: goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] java.io.OutputStream java.util.Iterator
StackMap stack: java.lang.Throwable
4: astore 4
start local 4 5: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
ifne 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
iconst_1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "write(B[)"
aload 2
aload 4
invokevirtual com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.handleException:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
end local 4 end local 2 9: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 11 1 b [B
2 9 2 os Ljava/io/OutputStream;
5 9 4 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
b
void writeMulti(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] int int top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 4
start local 4 2: aload 4
aload 1
iload 2
iload 3
invokevirtual java.io.OutputStream.write:([BII)V
3: goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] int int java.io.OutputStream java.util.Iterator
StackMap stack: java.lang.Throwable
4: astore 6
start local 6 5: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
ifne 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
iconst_1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "write(B[II)"
aload 4
aload 6
invokevirtual com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.handleException:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
end local 6 end local 4 9: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList byte[] int int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 11 1 b [B
0 11 2 off I
0 11 3 len I
2 9 4 os Ljava/io/OutputStream;
5 9 6 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
b
off
len
void flushMulti();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 1
start local 1 2: aload 1
invokevirtual java.io.OutputStream.flush:()V
3: goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList java.io.OutputStream java.util.Iterator
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
ifne 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
iconst_1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "flush()"
aload 1
aload 3
invokevirtual com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.handleException:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
end local 3 end local 1 9: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
2 9 1 os Ljava/io/OutputStream;
5 9 3 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
void closeMulti();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 1
start local 1 2: aload 1
invokevirtual java.io.OutputStream.close:()V
3: goto 9
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList java.io.OutputStream java.util.Iterator
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
ifne 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
iconst_1
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.seenException:Z
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
ldc "close()"
aload 1
aload 3
invokevirtual com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.handleException:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
end local 3 end local 1 9: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.outs:Ljava/util/List;
invokeinterface java.util.List.clear:()V
11: aload 0
dup
astore 1
monitorenter
12: aload 0
aconst_null
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
13: aload 1
monitorexit
14: goto 17
StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList
StackMap stack: java.lang.Throwable
15: aload 1
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
2 9 1 os Ljava/io/OutputStream;
5 9 3 t Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
12 14 15 any
15 16 15 any
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
private void handleException(java.lang.String, java.io.OutputStream, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
instanceof java.lang.ThreadDeath
ifeq 2
1: aload 3
checkcast java.lang.ThreadDeath
athrow
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 3: aload 0
dup
astore 6
monitorenter
4: aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
ifnonnull 6
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
6: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList java.lang.String java.io.OutputStream java.lang.Throwable java.lang.String top com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList
StackMap stack:
aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.reportedExceptions:Ljava/util/Map;
aload 2
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: aload 6
monitorexit
10: goto 13
end local 5 StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 6
monitorexit
12: athrow
start local 5 13: StackMap locals: com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList java.lang.String java.io.OutputStream java.lang.Throwable java.lang.String int
StackMap stack:
iload 5
ifeq 18
14: ldc "Output operation %s failed for %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 6
start local 6 15: new java.lang.Exception
dup
aload 6
aload 3
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 7
start local 7 16: new java.io.PrintStream
dup
aload 0
getfield com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList.this$0:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
getfield com.oracle.truffle.api.impl.DispatchOutputStream.out:Ljava/io/OutputStream;
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 8
start local 8 17: aload 7
aload 8
invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
end local 8 end local 7 end local 6 18: StackMap locals:
StackMap stack:
return
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 19 0 this Lcom/oracle/truffle/api/impl/DispatchOutputStream$OutputStreamList;
0 19 1 method Ljava/lang/String;
0 19 2 os Ljava/io/OutputStream;
0 19 3 t Ljava/lang/Throwable;
3 19 4 description Ljava/lang/String;
9 11 5 report Z
13 19 5 report Z
15 18 6 message Ljava/lang/String;
16 18 7 exception Ljava/lang/Exception;
17 18 8 stream Ljava/io/PrintStream;
Exception table:
from to target type
4 10 11 any
11 12 11 any
MethodParameters:
Name Flags
method
os
t
}
SourceFile: "DispatchOutputStream.java"
NestHost: com.oracle.truffle.api.impl.DispatchOutputStream
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
OutputStreamList = com.oracle.truffle.api.impl.DispatchOutputStream$OutputStreamList of com.oracle.truffle.api.impl.DispatchOutputStream