class jdk.jshell.execution.DemultiplexInput extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.jshell.execution.DemultiplexInput
super_class: java.lang.Thread
{
private final java.io.DataInputStream delegate;
descriptor: Ljava/io/DataInputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, java.io.OutputStream> io;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;
private final java.lang.Iterable<java.io.OutputStream> closeList;
descriptor: Ljava/lang/Iterable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Iterable<Ljava/io/OutputStream;>;
void <init>(java.io.InputStream, java.util.Map<java.lang.String, java.io.OutputStream>, java.lang.Iterable<java.io.OutputStream>);
descriptor: (Ljava/io/InputStream;Ljava/util/Map;Ljava/lang/Iterable;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
ldc "output reader"
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
1: aload 0
iconst_1
invokevirtual jdk.jshell.execution.DemultiplexInput.setDaemon:(Z)V
2: aload 0
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
putfield jdk.jshell.execution.DemultiplexInput.delegate:Ljava/io/DataInputStream;
3: aload 0
aload 2
putfield jdk.jshell.execution.DemultiplexInput.io:Ljava/util/Map;
4: aload 0
aload 3
putfield jdk.jshell.execution.DemultiplexInput.closeList:Ljava/lang/Iterable;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/jshell/execution/DemultiplexInput;
0 6 1 input Ljava/io/InputStream;
0 6 2 io Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;
0 6 3 closeList Ljava/lang/Iterable<Ljava/io/OutputStream;>;
Signature: (Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;Ljava/lang/Iterable<Ljava/io/OutputStream;>;)V
MethodParameters:
Name Flags
input
io
closeList
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jshell.execution.DemultiplexInput.delegate:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.read:()I
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpne 3
2: goto 33
3: StackMap locals: int
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 4: aload 0
getfield jdk.jshell.execution.DemultiplexInput.delegate:Ljava/io/DataInputStream;
aload 2
invokevirtual java.io.DataInputStream.readFully:([B)V
5: aload 0
getfield jdk.jshell.execution.DemultiplexInput.delegate:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.read:()I
istore 3
start local 3 6: iload 3
newarray 8
astore 4
start local 4 7: aload 0
getfield jdk.jshell.execution.DemultiplexInput.delegate:Ljava/io/DataInputStream;
aload 4
invokevirtual java.io.DataInputStream.readFully:([B)V
8: new java.lang.String
dup
aload 2
ldc "UTF-8"
invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
astore 5
start local 5 9: aload 0
getfield jdk.jshell.execution.DemultiplexInput.io:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.OutputStream
astore 6
start local 6 10: aload 6
ifnonnull 13
11: aload 0
ldc "Unexpected channel name: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual jdk.jshell.execution.DemultiplexInput.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
12: goto 0
13: StackMap locals: jdk.jshell.execution.DemultiplexInput int byte[] int byte[] java.lang.String java.io.OutputStream
StackMap stack:
aload 6
aload 4
invokevirtual java.io.OutputStream.write:([B)V
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 14: goto 0
15: StackMap locals: jdk.jshell.execution.DemultiplexInput
StackMap stack: java.io.IOException
astore 1
start local 1 16: aload 0
aload 1
ldc "Failed reading output"
invokevirtual jdk.jshell.execution.DemultiplexInput.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 17: aload 0
getfield jdk.jshell.execution.DemultiplexInput.closeList:Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 9
goto 23
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top top java.util.Iterator
StackMap stack:
18: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 8
start local 8 19: aload 8
invokevirtual java.io.OutputStream.close:()V
20: goto 23
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top java.io.OutputStream java.util.Iterator
StackMap stack: java.io.IOException
21: astore 10
start local 10 22: aload 0
aload 10
ldc "Failed reading output"
invokevirtual jdk.jshell.execution.DemultiplexInput.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 10 end local 8 23: StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
goto 40
24: StackMap locals: jdk.jshell.execution.DemultiplexInput
StackMap stack: java.lang.Throwable
astore 7
25: aload 0
getfield jdk.jshell.execution.DemultiplexInput.closeList:Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 9
goto 31
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top java.lang.Throwable top java.util.Iterator
StackMap stack:
26: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 8
start local 8 27: aload 8
invokevirtual java.io.OutputStream.close:()V
28: goto 31
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top java.lang.Throwable java.io.OutputStream java.util.Iterator
StackMap stack: java.io.IOException
29: astore 10
start local 10 30: aload 0
aload 10
ldc "Failed reading output"
invokevirtual jdk.jshell.execution.DemultiplexInput.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 10 end local 8 31: StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top java.lang.Throwable top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
32: aload 7
athrow
33: StackMap locals: jdk.jshell.execution.DemultiplexInput
StackMap stack:
aload 0
getfield jdk.jshell.execution.DemultiplexInput.closeList:Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 9
goto 39
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top top java.util.Iterator
StackMap stack:
34: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.OutputStream
astore 8
start local 8 35: aload 8
invokevirtual java.io.OutputStream.close:()V
36: goto 39
StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top java.io.OutputStream java.util.Iterator
StackMap stack: java.io.IOException
37: astore 10
start local 10 38: aload 0
aload 10
ldc "Failed reading output"
invokevirtual jdk.jshell.execution.DemultiplexInput.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 10 end local 8 39: StackMap locals: jdk.jshell.execution.DemultiplexInput top top top top top top top top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
40: StackMap locals: jdk.jshell.execution.DemultiplexInput
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Ljdk/jshell/execution/DemultiplexInput;
1 14 1 nameLen I
4 14 2 name [B
6 14 3 dataLen I
7 14 4 data [B
9 14 5 chan Ljava/lang/String;
10 14 6 out Ljava/io/OutputStream;
16 17 1 ex Ljava/io/IOException;
19 23 8 out Ljava/io/OutputStream;
27 31 8 out Ljava/io/OutputStream;
35 39 8 out Ljava/io/OutputStream;
22 23 10 ex Ljava/io/IOException;
30 31 10 ex Ljava/io/IOException;
38 39 10 ex Ljava/io/IOException;
Exception table:
from to target type
0 15 15 Class java.io.IOException
19 20 21 Class java.io.IOException
0 17 24 any
27 28 29 Class java.io.IOException
35 36 37 Class java.io.IOException
private void debug(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=0, locals=3, args_size=3
start local 0 start local 1 start local 2 0: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jshell/execution/DemultiplexInput;
0 1 1 format Ljava/lang/String;
0 1 2 args [Ljava/lang/Object;
MethodParameters:
Name Flags
format
args
private void debug(java.lang.Throwable, java.lang.String);
descriptor: (Ljava/lang/Throwable;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=0, locals=3, args_size=3
start local 0 start local 1 start local 2 0: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jshell/execution/DemultiplexInput;
0 1 1 ex Ljava/lang/Throwable;
0 1 2 where Ljava/lang/String;
MethodParameters:
Name Flags
ex
where
}
SourceFile: "DemultiplexInput.java"