public class jdk.jshell.execution.Util
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.jshell.execution.Util
super_class: java.lang.Object
{
private static final int TAG_DATA;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int TAG_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int TAG_EXCEPTION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jshell/execution/Util;
public static void forwardExecutionControl(jdk.jshell.spi.ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput);
descriptor: (Ljdk/jshell/spi/ExecutionControl;Ljava/io/ObjectInput;Ljava/io/ObjectOutput;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new jdk.jshell.execution.ExecutionControlForwarder
dup
aload 0
aload 1
aload 2
invokespecial jdk.jshell.execution.ExecutionControlForwarder.<init>:(Ljdk/jshell/spi/ExecutionControl;Ljava/io/ObjectInput;Ljava/io/ObjectOutput;)V
invokevirtual jdk.jshell.execution.ExecutionControlForwarder.commandLoop:()V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ec Ljdk/jshell/spi/ExecutionControl;
0 2 1 in Ljava/io/ObjectInput;
0 2 2 out Ljava/io/ObjectOutput;
MethodParameters:
Name Flags
ec
in
out
public static void forwardExecutionControlAndIO(jdk.jshell.spi.ExecutionControl, java.io.InputStream, java.io.OutputStream, java.util.Map<java.lang.String, java.util.function.Consumer<java.io.OutputStream>>, java.util.Map<java.lang.String, java.util.function.Consumer<java.io.InputStream>>);
descriptor: (Ljdk/jshell/spi/ExecutionControl;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/util/Map;Ljava/util/Map;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 3
StackMap locals: jdk.jshell.spi.ExecutionControl java.io.InputStream java.io.OutputStream java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
1: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 2: aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.function.Consumer
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 2
invokestatic jdk.jshell.execution.Util.multiplexingOutputStream:(Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 5 3: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: new java.io.ObjectOutputStream
dup
ldc "$command"
aload 2
invokestatic jdk.jshell.execution.Util.multiplexingOutputStream:(Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 5
start local 5 5: new jdk.jshell.execution.PipeInputStream
dup
invokespecial jdk.jshell.execution.PipeInputStream.<init>:()V
astore 6
start local 6 6: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 7: aload 7
ldc "$command"
aload 6
invokevirtual jdk.jshell.execution.PipeInputStream.createOutput:()Ljava/io/OutputStream;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 4
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 14
StackMap locals: jdk.jshell.spi.ExecutionControl java.io.InputStream java.io.OutputStream java.util.Map java.util.Map java.io.ObjectOutputStream jdk.jshell.execution.PipeInputStream java.util.Map top java.util.Iterator
StackMap stack:
9: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 10: new java.lang.StringBuilder
dup
ldc "$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "-input-requested"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokestatic jdk.jshell.execution.Util.multiplexingOutputStream:(Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
astore 10
start local 10 11: new jdk.jshell.execution.Util$1
dup
aload 10
invokespecial jdk.jshell.execution.Util$1.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 12: aload 7
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 11
invokevirtual jdk.jshell.execution.PipeInputStream.createOutput:()Ljava/io/OutputStream;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.function.Consumer
aload 11
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 11 end local 10 end local 8 14: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
15: new jdk.jshell.execution.DemultiplexInput
dup
aload 1
aload 7
aload 7
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial jdk.jshell.execution.DemultiplexInput.<init>:(Ljava/io/InputStream;Ljava/util/Map;Ljava/lang/Iterable;)V
invokevirtual jdk.jshell.execution.DemultiplexInput.start:()V
16: new java.io.ObjectInputStream
dup
aload 6
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 8
start local 8 17: aload 0
aload 8
aload 5
invokestatic jdk.jshell.execution.Util.forwardExecutionControl:(Ljdk/jshell/spi/ExecutionControl;Ljava/io/ObjectInput;Ljava/io/ObjectOutput;)V
18: return
end local 8 end local 7 end local 6 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 ec Ljdk/jshell/spi/ExecutionControl;
0 19 1 inStream Ljava/io/InputStream;
0 19 2 outStream Ljava/io/OutputStream;
0 19 3 outputStreamMap Ljava/util/Map<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/OutputStream;>;>;
0 19 4 inputStreamMap Ljava/util/Map<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/InputStream;>;>;
2 3 5 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/OutputStream;>;>;
5 19 5 cmdOut Ljava/io/ObjectOutputStream;
6 19 6 cmdInPipe Ljdk/jshell/execution/PipeInputStream;
7 19 7 inputs Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;
10 14 8 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/InputStream;>;>;
11 14 10 inputSignal Ljava/io/OutputStream;
12 14 11 inputPipe Ljdk/jshell/execution/PipeInputStream;
17 19 8 cmdIn Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
Signature: (Ljdk/jshell/spi/ExecutionControl;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/util/Map<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/OutputStream;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/function/Consumer<Ljava/io/InputStream;>;>;)V
MethodParameters:
Name Flags
ec
inStream
outStream
outputStreamMap
inputStreamMap
static java.io.OutputStream multiplexingOutputStream(java.lang.String, java.io.OutputStream);
descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new jdk.jshell.execution.MultiplexingOutputStream
dup
aload 0
aload 1
invokespecial jdk.jshell.execution.MultiplexingOutputStream.<init>:(Ljava/lang/String;Ljava/io/OutputStream;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 label Ljava/lang/String;
0 1 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
label
outputStream
public static jdk.jshell.spi.ExecutionControl remoteInputOutput(java.io.InputStream, java.io.OutputStream, java.util.Map<java.lang.String, java.io.OutputStream>, java.util.Map<java.lang.String, java.io.InputStream>, java.util.function.BiFunction<java.io.ObjectInput, java.io.ObjectOutput, jdk.jshell.spi.ExecutionControl>);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/util/Map;Ljava/util/Map;Ljava/util/function/BiFunction;)Ljdk/jshell/spi/ExecutionControl;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_1
anewarray jdk.jshell.spi.ExecutionControl
astore 5
start local 5 1: new java.util.HashMap
dup
aload 2
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
astore 6
start local 6 2: new java.io.ObjectOutputStream
dup
ldc "$command"
aload 1
invokestatic jdk.jshell.execution.Util.multiplexingOutputStream:(Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 7
start local 7 3: aload 3
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 8
StackMap locals: java.io.InputStream java.io.OutputStream java.util.Map java.util.Map java.util.function.BiFunction jdk.jshell.spi.ExecutionControl[] java.util.Map java.io.ObjectOutput top java.util.Iterator
StackMap stack:
4: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 5: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.io.InputStream
astore 10
start local 10 6: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 1
invokestatic jdk.jshell.execution.Util.multiplexingOutputStream:(Ljava/lang/String;Ljava/io/OutputStream;)Ljava/io/OutputStream;
astore 11
start local 11 7: aload 6
new java.lang.StringBuilder
dup
ldc "$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "-input-requested"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new jdk.jshell.execution.Util$2
dup
aload 10
aload 11
aload 5
aload 8
invokespecial jdk.jshell.execution.Util$2.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;[Ljdk/jshell/spi/ExecutionControl;Ljava/util/Map$Entry;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 8 8: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: new jdk.jshell.execution.PipeInputStream
dup
invokespecial jdk.jshell.execution.PipeInputStream.<init>:()V
astore 8
start local 8 10: aload 8
invokevirtual jdk.jshell.execution.PipeInputStream.createOutput:()Ljava/io/OutputStream;
astore 9
start local 9 11: aload 6
ldc "$command"
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: new jdk.jshell.execution.DemultiplexInput
dup
aload 0
aload 6
iconst_1
anewarray java.io.OutputStream
dup
iconst_0
aload 9
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial jdk.jshell.execution.DemultiplexInput.<init>:(Ljava/io/InputStream;Ljava/util/Map;Ljava/lang/Iterable;)V
invokevirtual jdk.jshell.execution.DemultiplexInput.start:()V
13: aload 5
iconst_0
aload 4
new java.io.ObjectInputStream
dup
aload 8
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
aload 7
invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.jshell.spi.ExecutionControl
dup_x2
aastore
areturn
end local 9 end local 8 end local 7 end local 6 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 14 0 input Ljava/io/InputStream;
0 14 1 output Ljava/io/OutputStream;
0 14 2 outputStreamMap Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;
0 14 3 inputStreamMap Ljava/util/Map<Ljava/lang/String;Ljava/io/InputStream;>;
0 14 4 factory Ljava/util/function/BiFunction<Ljava/io/ObjectInput;Ljava/io/ObjectOutput;Ljdk/jshell/spi/ExecutionControl;>;
1 14 5 result [Ljdk/jshell/spi/ExecutionControl;
2 14 6 augmentedStreamMap Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;
3 14 7 commandOut Ljava/io/ObjectOutput;
5 8 8 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/io/InputStream;>;
6 8 10 in Ljava/io/InputStream;
7 8 11 inTarget Ljava/io/OutputStream;
10 14 8 commandIn Ljdk/jshell/execution/PipeInputStream;
11 14 9 commandInTarget Ljava/io/OutputStream;
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/util/Map<Ljava/lang/String;Ljava/io/OutputStream;>;Ljava/util/Map<Ljava/lang/String;Ljava/io/InputStream;>;Ljava/util/function/BiFunction<Ljava/io/ObjectInput;Ljava/io/ObjectOutput;Ljdk/jshell/spi/ExecutionControl;>;)Ljdk/jshell/spi/ExecutionControl;
MethodParameters:
Name Flags
input
output
outputStreamMap
inputStreamMap
factory
public static void detectJdiExitEvent(com.sun.jdi.VirtualMachine, java.util.function.Consumer<java.lang.String>);
descriptor: (Lcom/sun/jdi/VirtualMachine;Ljava/util/function/Consumer;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface com.sun.jdi.VirtualMachine.canBeModified:()Z
ifeq 2
1: new jdk.jshell.execution.JdiEventHandler
dup
aload 0
aload 1
invokespecial jdk.jshell.execution.JdiEventHandler.<init>:(Lcom/sun/jdi/VirtualMachine;Ljava/util/function/Consumer;)V
invokevirtual jdk.jshell.execution.JdiEventHandler.start:()V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 vm Lcom/sun/jdi/VirtualMachine;
0 3 1 unbiddenExitHandler Ljava/util/function/Consumer<Ljava/lang/String;>;
Signature: (Lcom/sun/jdi/VirtualMachine;Ljava/util/function/Consumer<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
vm
unbiddenExitHandler
private static void debug(java.lang.Throwable, java.lang.String);
descriptor: (Ljava/lang/Throwable;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ex Ljava/lang/Throwable;
0 1 1 where Ljava/lang/String;
MethodParameters:
Name Flags
ex
where
}
SourceFile: "Util.java"
NestMembers:
jdk.jshell.execution.Util$1 jdk.jshell.execution.Util$2
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
jdk.jshell.execution.Util$1
jdk.jshell.execution.Util$2