public class org.jruby.util.ShellLauncher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.util.ShellLauncher
super_class: java.lang.Object
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String PATH_ENV;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "PATH"
private static final java.lang.String[] DEFAULT_PATH;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String[] WINDOWS_EXE_SUFFIXES;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String[] WINDOWS_INTERNAL_CMDS;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern SHELL_METACHARACTER_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WIN_ENVVAR_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Class UNIXProcess;
descriptor: Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.reflect.Field UNIXProcess_pid;
descriptor: Ljava/lang/reflect/Field;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Class ProcessImpl;
descriptor: Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.reflect.Field ProcessImpl_handle;
descriptor: Ljava/lang/reflect/Field;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.jruby.util.ShellLauncher$PidGetter PID_GETTER;
descriptor: Lorg/jruby/util/ShellLauncher$PidGetter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=0
0: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "/usr/local/bin"
aastore
dup
iconst_1
ldc "/usr/ucb"
aastore
dup
iconst_2
ldc "/usr/bin"
aastore
dup
iconst_3
ldc "/bin"
aastore
1: putstatic org.jruby.util.ShellLauncher.DEFAULT_PATH:[Ljava/lang/String;
2: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc ".exe"
aastore
dup
iconst_1
ldc ".com"
aastore
dup
iconst_2
ldc ".bat"
aastore
dup
iconst_3
ldc ".cmd"
aastore
3: putstatic org.jruby.util.ShellLauncher.WINDOWS_EXE_SUFFIXES:[Ljava/lang/String;
4: bipush 49
anewarray java.lang.String
dup
iconst_0
5: ldc "assoc"
aastore
dup
iconst_1
ldc "break"
aastore
dup
iconst_2
ldc "call"
aastore
dup
iconst_3
ldc "cd"
aastore
dup
iconst_4
ldc "chcp"
aastore
dup
iconst_5
6: ldc "chdir"
aastore
dup
bipush 6
ldc "cls"
aastore
dup
bipush 7
ldc "color"
aastore
dup
bipush 8
ldc "copy"
aastore
dup
bipush 9
ldc "ctty"
aastore
dup
bipush 10
ldc "date"
aastore
dup
bipush 11
ldc "del"
aastore
dup
bipush 12
ldc "dir"
aastore
dup
bipush 13
ldc "echo"
aastore
dup
bipush 14
ldc "endlocal"
aastore
dup
bipush 15
7: ldc "erase"
aastore
dup
bipush 16
ldc "exit"
aastore
dup
bipush 17
ldc "for"
aastore
dup
bipush 18
ldc "ftype"
aastore
dup
bipush 19
ldc "goto"
aastore
dup
bipush 20
ldc "if"
aastore
dup
bipush 21
ldc "lfnfor"
aastore
dup
bipush 22
ldc "lh"
aastore
dup
bipush 23
ldc "lock"
aastore
dup
bipush 24
ldc "md"
aastore
dup
bipush 25
ldc "mkdir"
aastore
dup
bipush 26
8: ldc "move"
aastore
dup
bipush 27
ldc "path"
aastore
dup
bipush 28
ldc "pause"
aastore
dup
bipush 29
ldc "popd"
aastore
dup
bipush 30
ldc "prompt"
aastore
dup
bipush 31
ldc "pushd"
aastore
dup
bipush 32
ldc "rd"
aastore
dup
bipush 33
ldc "rem"
aastore
dup
bipush 34
ldc "ren"
aastore
dup
bipush 35
ldc "rename"
aastore
dup
bipush 36
9: ldc "rmdir"
aastore
dup
bipush 37
ldc "set"
aastore
dup
bipush 38
ldc "setlocal"
aastore
dup
bipush 39
ldc "shift"
aastore
dup
bipush 40
ldc "start"
aastore
dup
bipush 41
ldc "time"
aastore
dup
bipush 42
ldc "title"
aastore
dup
bipush 43
ldc "truename"
aastore
dup
bipush 44
ldc "type"
aastore
dup
bipush 45
10: ldc "unlock"
aastore
dup
bipush 46
ldc "ver"
aastore
dup
bipush 47
ldc "verify"
aastore
dup
bipush 48
ldc "vol"
aastore
11: putstatic org.jruby.util.ShellLauncher.WINDOWS_INTERNAL_CMDS:[Ljava/lang/String;
12: ldc "[*?{}\\[\\]<>()~&|$;'`\\\\\"\\n]"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
13: putstatic org.jruby.util.ShellLauncher.SHELL_METACHARACTER_PATTERN:Ljava/util/regex/Pattern;
14: ldc "%\\w+%"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.jruby.util.ShellLauncher.WIN_ENVVAR_PATTERN:Ljava/util/regex/Pattern;
15: aconst_null
astore 1
start local 1 16: aconst_null
astore 2
start local 2 17: ldc "java.lang.UNIXProcess"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 1
18: aload 1
ldc "pid"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 2
19: aload 2
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
20: goto 22
StackMap locals: top java.lang.Class java.lang.reflect.Field
StackMap stack: java.lang.Exception
21: pop
22: StackMap locals:
StackMap stack:
aload 1
putstatic org.jruby.util.ShellLauncher.UNIXProcess:Ljava/lang/Class;
23: aload 2
putstatic org.jruby.util.ShellLauncher.UNIXProcess_pid:Ljava/lang/reflect/Field;
24: aconst_null
astore 3
start local 3 25: aconst_null
astore 4
start local 4 26: ldc "java.lang.ProcessImpl"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
27: aload 3
ldc "handle"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 4
28: aload 4
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
29: goto 31
StackMap locals: top java.lang.Class java.lang.reflect.Field java.lang.Class java.lang.reflect.Field
StackMap stack: java.lang.Exception
30: pop
31: StackMap locals:
StackMap stack:
aload 3
putstatic org.jruby.util.ShellLauncher.ProcessImpl:Ljava/lang/Class;
32: aload 4
putstatic org.jruby.util.ShellLauncher.ProcessImpl_handle:Ljava/lang/reflect/Field;
33: getstatic org.jruby.util.ShellLauncher.UNIXProcess_pid:Ljava/lang/reflect/Field;
ifnull 39
34: getstatic org.jruby.util.ShellLauncher.ProcessImpl_handle:Ljava/lang/reflect/Field;
ifnull 37
35: new org.jruby.util.ShellLauncher$1
dup
invokespecial org.jruby.util.ShellLauncher$1.<init>:()V
astore 0
start local 0 36: goto 43
end local 0 37: StackMap locals:
StackMap stack:
new org.jruby.util.ShellLauncher$2
dup
invokespecial org.jruby.util.ShellLauncher$2.<init>:()V
astore 0
start local 0 38: goto 43
end local 0 StackMap locals:
StackMap stack:
39: getstatic org.jruby.util.ShellLauncher.ProcessImpl_handle:Ljava/lang/reflect/Field;
ifnull 42
40: new org.jruby.util.ShellLauncher$3
dup
invokespecial org.jruby.util.ShellLauncher$3.<init>:()V
astore 0
start local 0 41: goto 43
end local 0 42: StackMap locals:
StackMap stack:
new org.jruby.util.ShellLauncher$4
dup
invokespecial org.jruby.util.ShellLauncher$4.<init>:()V
astore 0
start local 0 43: StackMap locals: org.jruby.util.ShellLauncher$PidGetter java.lang.Class java.lang.reflect.Field java.lang.Class java.lang.reflect.Field
StackMap stack:
aload 0
putstatic org.jruby.util.ShellLauncher.PID_GETTER:Lorg/jruby/util/ShellLauncher$PidGetter;
end local 4 end local 3 end local 2 end local 1 end local 0 44: return
LocalVariableTable:
Start End Slot Name Signature
36 37 0 pidGetter Lorg/jruby/util/ShellLauncher$PidGetter;
38 39 0 pidGetter Lorg/jruby/util/ShellLauncher$PidGetter;
41 42 0 pidGetter Lorg/jruby/util/ShellLauncher$PidGetter;
43 44 0 pidGetter Lorg/jruby/util/ShellLauncher$PidGetter;
16 44 1 up Ljava/lang/Class;
17 44 2 pid Ljava/lang/reflect/Field;
25 44 3 pi Ljava/lang/Class;
26 44 4 handle Ljava/lang/reflect/Field;
Exception table:
from to target type
17 20 21 Class java.lang.Exception
26 29 30 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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 Lorg/jruby/util/ShellLauncher;
public static java.lang.String[] getCurrentEnv(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)[Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
iconst_0
invokestatic org.jruby.util.ShellLauncher.getModifiedEnv:(Lorg/jruby/Ruby;Ljava/util/Collection;Z)[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static java.lang.String[] getCurrentEnv(org.jruby.Ruby, java.util.Map);
descriptor: (Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ifnonnull 1
getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
goto 2
StackMap locals:
StackMap stack: org.jruby.Ruby
1: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
StackMap locals: org.jruby.Ruby java.util.Map
StackMap stack: org.jruby.Ruby java.util.Collection
2: iconst_0
invokestatic org.jruby.util.ShellLauncher.getModifiedEnv:(Lorg/jruby/Ruby;Ljava/util/Collection;Z)[Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 mergeEnv Ljava/util/Map;
MethodParameters:
Name Flags
runtime
mergeEnv
public static java.lang.String[] getModifiedEnv(org.jruby.Ruby, java.util.Collection, boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/util/Collection;Z)[Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 3
start local 3 1: aload 3
invokevirtual org.jruby.runtime.ThreadContext.isEventHooksEnabled:()Z
istore 4
start local 4 2: aload 3
iconst_0
invokevirtual org.jruby.runtime.ThreadContext.setEventHooksEnabled:(Z)V
3: aconst_null
astore 5
start local 5 4: iload 2
ifne 6
5: aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
ldc "ENV"
invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyHash
astore 5
6: StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.RubyHash
StackMap stack:
aload 1
ifnull 9
7: aload 5
invokevirtual org.jruby.RubyHash.size:()I
aload 1
invokeinterface java.util.Collection.size:()I
iadd
anewarray java.lang.String
astore 6
start local 6 8: goto 10
end local 6 9: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.jruby.RubyHash.size:()I
anewarray java.lang.String
astore 6
start local 6 10: StackMap locals: java.lang.String[]
StackMap stack:
iconst_0
istore 7
start local 7 11: aload 5
ifnull 21
12: aload 5
invokevirtual org.jruby.RubyHash.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 20
StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int top java.util.Iterator
StackMap stack:
13: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 14: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
ifnonnull 16
15: aload 0
aload 0
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
aload 0
invokevirtual org.jruby.Ruby.getStructClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
16: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
ifnonnull 18
17: goto 20
18: StackMap locals:
StackMap stack:
aload 6
iload 7
new java.lang.StringBuilder
dup
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
19: iinc 7 1
end local 8 20: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
21: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int
StackMap stack:
aload 1
ifnull 47
22: aload 1
instanceof java.util.Set
ifeq 33
23: aload 1
checkcast java.util.Set
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 31
StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int top java.util.Iterator
StackMap stack:
24: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 25: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
ifnonnull 27
26: aload 0
aload 0
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
aload 0
invokevirtual org.jruby.Ruby.getStructClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
27: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
ifnonnull 29
28: goto 31
29: StackMap locals:
StackMap stack:
aload 6
iload 7
new java.lang.StringBuilder
dup
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
30: iinc 7 1
end local 8 31: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
32: goto 47
StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int org.jruby.RubyHash java.lang.String[] int
StackMap stack:
33: aload 1
instanceof org.jruby.RubyArray
ifeq 47
34: iconst_0
istore 8
start local 8 35: goto 46
36: StackMap locals: int
StackMap stack:
aload 1
checkcast org.jruby.RubyArray
iload 8
i2l
invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
astore 9
start local 9 37: aload 9
invokevirtual org.jruby.RubyArray.size:()I
iconst_2
if_icmpeq 39
38: aload 0
ldc "env assignments must come in pairs"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
39: StackMap locals: org.jruby.RubyArray
StackMap stack:
aload 9
lconst_0
invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
ifnonnull 41
40: aload 0
aload 0
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
aload 0
invokevirtual org.jruby.Ruby.getStructClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
41: StackMap locals:
StackMap stack:
aload 9
lconst_1
invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
ifnonnull 43
42: goto 45
43: StackMap locals:
StackMap stack:
aload 6
iload 7
new java.lang.StringBuilder
dup
aload 9
lconst_0
invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 9
lconst_1
invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
44: iinc 7 1
end local 9 45: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
46: iload 8
aload 1
invokeinterface java.util.Collection.size:()I
if_icmplt 36
end local 8 47: StackMap locals:
StackMap stack:
aload 6
iload 7
invokestatic org.jruby.util.ShellLauncher.arrayOfLength:([Ljava/lang/String;I)[Ljava/lang/String;
astore 11
48: aload 3
iload 4
invokevirtual org.jruby.runtime.ThreadContext.setEventHooksEnabled:(Z)V
49: aload 11
areturn
end local 7 end local 6 end local 5 50: StackMap locals: org.jruby.Ruby java.util.Collection int org.jruby.runtime.ThreadContext int
StackMap stack: java.lang.Throwable
astore 10
51: aload 3
iload 4
invokevirtual org.jruby.runtime.ThreadContext.setEventHooksEnabled:(Z)V
52: aload 10
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 runtime Lorg/jruby/Ruby;
0 53 1 mergeEnv Ljava/util/Collection;
0 53 2 clearEnv Z
1 53 3 context Lorg/jruby/runtime/ThreadContext;
2 53 4 traceEnabled Z
4 50 5 hash Lorg/jruby/RubyHash;
8 9 6 ret [Ljava/lang/String;
10 50 6 ret [Ljava/lang/String;
11 50 7 i I
14 20 8 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
25 31 8 e Ljava/util/Map$Entry;
35 47 8 j I
37 45 9 e Lorg/jruby/RubyArray;
Exception table:
from to target type
3 48 50 any
MethodParameters:
Name Flags
runtime
mergeEnv
clearEnv
private static java.lang.String[] arrayOfLength(java.lang.String[], int);
descriptor: ([Ljava/lang/String;I)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
arraylength
if_icmpne 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iload 1
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.String[]
StackMap locals:
StackMap stack: java.lang.String[]
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ary [Ljava/lang/String;
0 3 1 len I
MethodParameters:
Name Flags
ary final
len final
private static boolean filenameIsPathSearchable(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
1: aload 0
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
2: aload 0
ldc "../"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
3: iload 1
ifeq 5
aload 0
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 5
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 12
6: aload 0
ldc "\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 11
7: aload 0
ldc ".\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 11
8: aload 0
ldc "..\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 11
9: aload 0
invokevirtual java.lang.String.length:()I
iconst_2
if_icmple 10
aload 0
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpeq 11
10: StackMap locals:
StackMap stack:
iload 1
ifeq 12
aload 0
bipush 92
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 12
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
12: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 fname Ljava/lang/String;
0 13 1 forExec Z
MethodParameters:
Name Flags
fname
forExec
private static java.io.File tryFile(org.jruby.Ruby, java.lang.String, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 3
1: new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 2: goto 4
end local 3 3: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 1
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 3
start local 3 4: StackMap locals: java.io.File
StackMap stack:
aload 3
invokevirtual java.io.File.isAbsolute:()Z
ifne 6
5: new java.io.File
dup
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
aload 3
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 3
6: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "Trying file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
7: aload 3
invokevirtual java.io.File.exists:()Z
ifeq 8
aload 3
areturn
8: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 runtime Lorg/jruby/Ruby;
0 9 1 fdir Ljava/lang/String;
0 9 2 fname Ljava/lang/String;
2 3 3 pathFile Ljava/io/File;
4 9 3 pathFile Ljava/io/File;
MethodParameters:
Name Flags
runtime
fdir
fname
private static boolean withExeSuffix(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
astore 1
start local 1 1: getstatic org.jruby.util.ShellLauncher.WINDOWS_EXE_SUFFIXES:[Ljava/lang/String;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: java.lang.String java.lang.String top int int java.lang.String[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 fname Ljava/lang/String;
1 8 1 lowerCaseFname Ljava/lang/String;
3 5 2 suffix Ljava/lang/String;
MethodParameters:
Name Flags
fname
private static java.io.File isValidFile(org.jruby.Ruby, java.lang.String, java.lang.String, boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;Z)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: iload 3
ifeq 13
getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 13
2: aload 2
invokestatic org.jruby.util.ShellLauncher.withExeSuffix:(Ljava/lang/String;)Z
ifeq 5
3: aload 0
aload 1
aload 2
invokestatic org.jruby.util.ShellLauncher.tryFile:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 4
4: goto 19
5: StackMap locals: java.io.File
StackMap stack:
getstatic org.jruby.util.ShellLauncher.WINDOWS_EXE_SUFFIXES:[Ljava/lang/String;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 11
StackMap locals: org.jruby.Ruby java.lang.String java.lang.String int java.io.File top int int java.lang.String[]
StackMap stack:
6: aload 8
iload 6
aaload
astore 5
start local 5 7: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.jruby.util.ShellLauncher.tryFile:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 4
8: aload 4
ifnull 10
9: goto 19
end local 5 10: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
iload 7
if_icmplt 6
12: goto 19
13: StackMap locals: org.jruby.Ruby java.lang.String java.lang.String int java.io.File
StackMap stack:
aload 0
aload 1
aload 2
invokestatic org.jruby.util.ShellLauncher.tryFile:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 4
14: aload 4
ifnull 19
15: aload 4
invokevirtual java.io.File.isDirectory:()Z
ifeq 17
16: aconst_null
areturn
17: StackMap locals:
StackMap stack:
iload 3
ifeq 19
aload 0
invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokeinterface jnr.posix.POSIX.stat:(Ljava/lang/String;)Ljnr/posix/FileStat;
invokeinterface jnr.posix.FileStat.isExecutable:()Z
ifne 19
18: aload 0
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newErrnoEACCESError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
19: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 runtime Lorg/jruby/Ruby;
0 20 1 fdir Ljava/lang/String;
0 20 2 fname Ljava/lang/String;
0 20 3 isExec Z
1 20 4 validFile Ljava/io/File;
7 10 5 suffix Ljava/lang/String;
MethodParameters:
Name Flags
runtime
fdir
fname
isExec
private static java.io.File isValidFile(org.jruby.Ruby, java.lang.String, boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
aload 3
aload 1
iload 2
invokestatic org.jruby.util.ShellLauncher.isValidFile:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;Z)Ljava/io/File;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
0 2 1 fname Ljava/lang/String;
0 2 2 isExec Z
1 2 3 fdir Ljava/lang/String;
MethodParameters:
Name Flags
runtime
fname
isExec
private static java.io.File findPathFile(org.jruby.Ruby, java.lang.String, java.lang.String[], boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 3
aload 1
ldc "\""
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
aload 1
ldc "\""
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
2: aload 1
iconst_1
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
3: StackMap locals: java.io.File
StackMap stack:
aload 1
iload 3
invokestatic org.jruby.util.ShellLauncher.filenameIsPathSearchable:(Ljava/lang/String;Z)Z
istore 5
start local 5 4: iload 5
ifeq 14
5: aload 2
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 12
StackMap locals: org.jruby.Ruby java.lang.String java.lang.String[] int java.io.File int top int int java.lang.String[]
StackMap stack:
6: aload 9
iload 7
aaload
astore 6
start local 6 7: aload 0
aload 6
aload 1
iload 3
invokestatic org.jruby.util.ShellLauncher.isValidFile:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;Z)Ljava/io/File;
astore 4
8: aload 4
ifnull 11
9: goto 15
10: StackMap locals: org.jruby.Ruby java.lang.String java.lang.String[] int java.io.File int java.lang.String int int java.lang.String[]
StackMap stack: java.lang.SecurityException
pop
end local 6 11: StackMap locals: org.jruby.Ruby java.lang.String java.lang.String[] int java.io.File int top int int java.lang.String[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
12: iload 7
iload 8
if_icmplt 6
13: goto 15
14: StackMap locals: org.jruby.Ruby java.lang.String java.lang.String[] int java.io.File int
StackMap stack:
aload 0
aload 1
iload 3
invokestatic org.jruby.util.ShellLauncher.isValidFile:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Ljava/io/File;
astore 4
15: StackMap locals:
StackMap stack:
aload 4
areturn
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 16 0 runtime Lorg/jruby/Ruby;
0 16 1 fname Ljava/lang/String;
0 16 2 path [Ljava/lang/String;
0 16 3 isExec Z
1 16 4 pathFile Ljava/io/File;
4 16 5 doPathSearch Z
7 11 6 fdir Ljava/lang/String;
Exception table:
from to target type
7 9 10 Class java.lang.SecurityException
MethodParameters:
Name Flags
runtime
fname
path
isExec
public static java.io.File findPathExecutable(org.jruby.Ruby, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/io/File;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
ldc "ENV"
invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyHash
astore 2
start local 2 1: aload 2
aload 0
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
ldc "PATH"
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 2: aload 0
aload 1
aload 3
invokestatic org.jruby.util.ShellLauncher.findPathExecutable:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/File;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 fname Ljava/lang/String;
1 3 2 env Lorg/jruby/RubyHash;
2 3 3 pathObject Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
fname
public static java.io.File findPathExecutable(org.jruby.Ruby, java.lang.String, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/File;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
ldc "ENV"
invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyHash
astore 4
start local 4 2: aload 4
aload 0
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
ldc "PATH"
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 2
end local 4 3: StackMap locals:
StackMap stack:
aload 2
ifnonnull 6
4: getstatic org.jruby.util.ShellLauncher.DEFAULT_PATH:[Ljava/lang/String;
astore 3
start local 3 5: goto 11
end local 3 6: StackMap locals:
StackMap stack:
ldc "path.separator"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 7: aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 5
start local 5 8: getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 10
9: new java.lang.StringBuilder
dup
ldc "."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
10: StackMap locals: org.jruby.Ruby java.lang.String org.jruby.runtime.builtin.IRubyObject top java.lang.String java.lang.String
StackMap stack:
aload 5
aload 4
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
end local 5 end local 4 start local 3 11: StackMap locals: org.jruby.Ruby java.lang.String org.jruby.runtime.builtin.IRubyObject java.lang.String[]
StackMap stack:
aload 0
aload 1
aload 3
iconst_1
invokestatic org.jruby.util.ShellLauncher.findPathFile:(Lorg/jruby/Ruby;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/io/File;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 runtime Lorg/jruby/Ruby;
0 12 1 fname Ljava/lang/String;
0 12 2 pathObject Lorg/jruby/runtime/builtin/IRubyObject;
5 6 3 pathNodes [Ljava/lang/String;
11 12 3 pathNodes [Ljava/lang/String;
2 3 4 env Lorg/jruby/RubyHash;
7 11 4 pathSeparator Ljava/lang/String;
8 11 5 path Ljava/lang/String;
MethodParameters:
Name Flags
runtime
fname
pathObject
public static int runAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
invokestatic org.jruby.util.ShellLauncher.runAndWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
rawArgs
public static long[] runAndWaitPid(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)[J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
iconst_1
invokestatic org.jruby.util.ShellLauncher.runAndWaitPid:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;Z)[J
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
rawArgs
public static long runWithoutWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
invokestatic org.jruby.util.ShellLauncher.runWithoutWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
rawArgs
public static int runExternalAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
astore 3
start local 3 1: aload 0
invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
astore 4
start local 4 2: aload 0
invokevirtual org.jruby.Ruby.getInputStream:()Ljava/io/InputStream;
astore 5
start local 5 3: new java.io.File
dup
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 4: new org.jruby.util.ShellLauncher$LaunchConfig
dup
aload 0
aload 1
iconst_1
invokespecial org.jruby.util.ShellLauncher$LaunchConfig.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)V
astore 7
start local 7 5: aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInShell:()Z
ifeq 10
6: aload 0
ldc "Launching with shell"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
7: aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForShell:()V
8: aload 0
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 8
start local 8 9: goto 12
end local 8 10: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack:
aload 0
ldc "Launching directly (no shell)"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
11: aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForDirect:()V
12: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
astore 9
start local 9 13: aload 0
aload 9
invokestatic org.jruby.util.ShellLauncher.changeDirInsideJar:(Lorg/jruby/Ruby;[Ljava/lang/String;)Z
ifeq 15
14: new java.io.File
dup
ldc "user.dir"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
15: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig top java.lang.String[]
StackMap stack:
aload 0
aload 9
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 8
end local 9 start local 8 16: goto 19
end local 8 StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.lang.SecurityException
17: astore 9
start local 9 18: aload 0
aload 9
invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 9 start local 8 19: StackMap locals: java.lang.Process
StackMap stack:
aload 0
aload 8
aload 5
aload 3
aload 4
invokestatic org.jruby.util.ShellLauncher.handleStreams:(Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
20: aload 8
invokevirtual java.lang.Process.waitFor:()I
21: ireturn
end local 8 22: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.io.IOException
astore 8
start local 8 23: aload 0
aload 8
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 8 24: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
25: aload 0
ldc "unexpected interrupt"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
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 26 0 runtime Lorg/jruby/Ruby;
0 26 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 26 2 mergeEnv Ljava/util/Map;
1 26 3 output Ljava/io/OutputStream;
2 26 4 error Ljava/io/OutputStream;
3 26 5 input Ljava/io/InputStream;
4 26 6 pwd Ljava/io/File;
5 26 7 cfg Lorg/jruby/util/ShellLauncher$LaunchConfig;
9 10 8 process Ljava/lang/Process;
16 17 8 process Ljava/lang/Process;
19 22 8 process Ljava/lang/Process;
13 16 9 execArgs [Ljava/lang/String;
18 19 9 se Ljava/lang/SecurityException;
23 24 8 e Ljava/io/IOException;
Exception table:
from to target type
5 16 17 Class java.lang.SecurityException
5 21 22 Class java.io.IOException
5 21 24 Class java.lang.InterruptedException
MethodParameters:
Name Flags
runtime
rawArgs
mergeEnv
public static long runExternalWithoutWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
iconst_0
invokestatic org.jruby.util.ShellLauncher.runExternal:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)J
lreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 env Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 prog Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 options Lorg/jruby/runtime/builtin/IRubyObject;
0 1 4 args Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
env
prog
options
args
public static long runExternal(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, boolean);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 1
aload 1
instanceof java.util.Map
ifne 2
1: StackMap locals:
StackMap stack:
aconst_null
astore 1
2: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
invokevirtual org.jruby.RubyArray.toJavaArray:()[Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
start local 6 3: aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
astore 7
start local 7 4: aload 0
invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
astore 8
start local 8 5: aload 0
invokevirtual org.jruby.Ruby.getInputStream:()Ljava/io/InputStream;
astore 9
start local 9 6: new java.io.File
dup
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 10
start local 10 7: new org.jruby.util.ShellLauncher$LaunchConfig
dup
aload 0
aload 6
iconst_1
invokespecial org.jruby.util.ShellLauncher$LaunchConfig.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)V
astore 11
start local 11 8: aload 11
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInShell:()Z
ifeq 12
9: aload 0
ldc "Launching with shell"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
10: aload 11
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForShell:()V
11: goto 14
12: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack:
aload 0
ldc "Launching directly (no shell)"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
13: aload 11
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForDirect:()V
14: StackMap locals:
StackMap stack:
aload 11
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
astore 13
start local 13 15: aload 0
aload 13
invokestatic org.jruby.util.ShellLauncher.changeDirInsideJar:(Lorg/jruby/Ruby;[Ljava/lang/String;)Z
ifeq 17
16: new java.io.File
dup
ldc "."
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 10
17: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig top java.lang.String[]
StackMap stack:
aload 0
aload 13
aload 0
aload 1
checkcast java.util.Map
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 10
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 12
end local 13 start local 12 18: goto 21
end local 12 StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.lang.SecurityException
19: astore 13
start local 13 20: aload 0
aload 13
invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 13 start local 12 21: StackMap locals: java.lang.Process
StackMap stack:
iload 5
ifeq 27
22: aload 0
aload 12
aload 9
aload 7
aload 8
invokestatic org.jruby.util.ShellLauncher.handleStreams:(Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
23: aload 12
invokevirtual java.lang.Process.waitFor:()I
i2l
24: lreturn
25: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
26: aload 0
ldc "unexpected interrupt"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
27: StackMap locals:
StackMap stack:
aload 0
aload 12
aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
aload 8
invokestatic org.jruby.util.ShellLauncher.handleStreamsNonblocking:(Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
28: aload 12
invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
29: lreturn
end local 12 30: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.io.IOException
astore 12
start local 12 31: aload 0
aload 12
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 12 end local 11 end local 10 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 32 0 runtime Lorg/jruby/Ruby;
0 32 1 env Lorg/jruby/runtime/builtin/IRubyObject;
0 32 2 prog Lorg/jruby/runtime/builtin/IRubyObject;
0 32 3 options Lorg/jruby/runtime/builtin/IRubyObject;
0 32 4 args Lorg/jruby/runtime/builtin/IRubyObject;
0 32 5 wait Z
3 32 6 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
4 32 7 output Ljava/io/OutputStream;
5 32 8 error Ljava/io/OutputStream;
6 32 9 input Ljava/io/InputStream;
7 32 10 pwd Ljava/io/File;
8 32 11 cfg Lorg/jruby/util/ShellLauncher$LaunchConfig;
18 19 12 process Ljava/lang/Process;
21 30 12 process Ljava/lang/Process;
15 18 13 execArgs [Ljava/lang/String;
20 21 13 se Ljava/lang/SecurityException;
31 32 12 e Ljava/io/IOException;
Exception table:
from to target type
8 18 19 Class java.lang.SecurityException
23 24 25 Class java.lang.InterruptedException
8 24 30 Class java.io.IOException
25 29 30 Class java.io.IOException
MethodParameters:
Name Flags
runtime
env
prog
options
args
wait
private static boolean changeDirInsideJar(org.jruby.Ruby, java.lang.String[]);
descriptor: (Lorg/jruby/Ruby;[Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
arraylength
iconst_1
isub
aaload
invokestatic org.jruby.util.ShellLauncher.changeDirInsideJar:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/String;
dup
astore 2
start local 2 1: ifnull 4
2: aload 1
aload 1
arraylength
iconst_1
isub
aload 2
aastore
3: iconst_1
ireturn
4: StackMap locals: java.lang.String
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 args [Ljava/lang/String;
1 5 2 arg Ljava/lang/String;
MethodParameters:
Name Flags
runtime final
args final
public static java.lang.String changeDirInsideJar(org.jruby.Ruby, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
ldc "uri:classloader:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
aload 1
ldc "org.jruby.Main"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 2
1: aload 1
ldc "org.jruby.Main"
new java.lang.StringBuilder
dup
ldc "org.jruby.Main -C "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.jruby.util.StringSupport.replaceFirst:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 arg Ljava/lang/String;
MethodParameters:
Name Flags
runtime final
arg final
public static java.lang.Process buildProcess(org.jruby.Ruby, java.lang.String[], java.lang.String[], java.io.File);
descriptor: (Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
aload 1
invokeinterface jnr.posix.POSIX.newProcessMaker:([Ljava/lang/String;)Ljnr/posix/util/ProcessMaker;
1: aload 2
invokeinterface jnr.posix.util.ProcessMaker.environment:([Ljava/lang/String;)Ljnr/posix/util/ProcessMaker;
2: aload 3
invokeinterface jnr.posix.util.ProcessMaker.directory:(Ljava/io/File;)Ljnr/posix/util/ProcessMaker;
3: invokeinterface jnr.posix.util.ProcessMaker.start:()Ljava/lang/Process;
4: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 args [Ljava/lang/String;
0 5 2 env [Ljava/lang/String;
0 5 3 pwd Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
args
env
pwd
public static long runExternalWithoutWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual org.jruby.Ruby.getOutputStream:()Ljava/io/PrintStream;
invokestatic org.jruby.util.ShellLauncher.runWithoutWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
rawArgs
public static int execAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
invokestatic org.jruby.util.ShellLauncher.execAndWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime
rawArgs
public static int execAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.io.File
dup
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: new org.jruby.util.ShellLauncher$LaunchConfig
dup
aload 0
aload 1
iconst_1
invokespecial org.jruby.util.ShellLauncher$LaunchConfig.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)V
astore 4
start local 4 2: aload 4
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInProcess:()Z
ifeq 14
3: aload 0
ldc "ExecAndWait in-process"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
4: new org.jruby.util.ShellLauncher$ScriptThreadProcess
dup
5: aload 0
aload 4
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 3
iconst_0
6: invokespecial org.jruby.util.ShellLauncher$ScriptThreadProcess.<init>:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;Z)V
astore 5
start local 5 7: aload 5
invokevirtual org.jruby.util.ShellLauncher$ScriptThreadProcess.start:()V
8: aload 5
invokevirtual org.jruby.util.ShellLauncher$ScriptThreadProcess.waitFor:()I
9: ireturn
end local 5 10: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.io.IOException
astore 5
start local 5 11: aload 0
aload 5
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 5 12: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
13: aload 0
ldc "unexpected interrupt"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokestatic org.jruby.util.ShellLauncher.runExternalAndWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 runtime Lorg/jruby/Ruby;
0 15 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 15 2 mergeEnv Ljava/util/Map;
1 15 3 pwd Ljava/io/File;
2 15 4 cfg Lorg/jruby/util/ShellLauncher$LaunchConfig;
7 10 5 ipScript Lorg/jruby/util/ShellLauncher$ScriptThreadProcess;
11 12 5 e Ljava/io/IOException;
Exception table:
from to target type
4 9 10 Class java.io.IOException
4 9 12 Class java.lang.InterruptedException
MethodParameters:
Name Flags
runtime
rawArgs
mergeEnv
public static int runAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.io.OutputStream);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_1
invokestatic org.jruby.util.ShellLauncher.runAndWait:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;Z)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 output Ljava/io/OutputStream;
MethodParameters:
Name Flags
runtime
rawArgs
output
public static int runAndWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.io.OutputStream, boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;Z)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokestatic org.jruby.util.ShellLauncher.runAndWaitPid:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;Z)[J
iconst_0
laload
l2i
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 output Ljava/io/OutputStream;
0 1 3 doExecutableSearch Z
MethodParameters:
Name Flags
runtime
rawArgs
output
doExecutableSearch
public static long[] runAndWaitPid(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.io.OutputStream, boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;Z)[J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
astore 4
start local 4 1: aload 0
invokevirtual org.jruby.Ruby.getInputStream:()Ljava/io/InputStream;
astore 5
start local 5 2: aload 0
aload 1
iload 3
invokestatic org.jruby.util.ShellLauncher.run:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/Process;
astore 6
start local 6 3: aload 0
aload 6
aload 5
aload 2
aload 4
invokestatic org.jruby.util.ShellLauncher.handleStreams:(Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
4: iconst_2
newarray 11
dup
iconst_0
aload 6
invokevirtual java.lang.Process.waitFor:()I
i2l
lastore
dup
iconst_1
aload 6
invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
lastore
5: areturn
end local 6 6: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream int java.io.OutputStream java.io.InputStream
StackMap stack: java.io.IOException
astore 6
start local 6 7: aload 0
aload 6
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 6 8: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
9: aload 0
ldc "unexpected interrupt"
invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
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 10 0 runtime Lorg/jruby/Ruby;
0 10 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 10 2 output Ljava/io/OutputStream;
0 10 3 doExecutableSearch Z
1 10 4 error Ljava/io/OutputStream;
2 10 5 input Ljava/io/InputStream;
3 6 6 aProcess Ljava/lang/Process;
7 8 6 e Ljava/io/IOException;
Exception table:
from to target type
2 5 6 Class java.io.IOException
2 5 8 Class java.lang.InterruptedException
MethodParameters:
Name Flags
runtime
rawArgs
output
doExecutableSearch
private static long runWithoutWait(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.io.OutputStream);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
astore 3
start local 3 1: aload 0
aload 1
iconst_1
invokestatic org.jruby.util.ShellLauncher.run:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/Process;
astore 4
start local 4 2: aload 0
aload 4
aload 2
aload 3
invokestatic org.jruby.util.ShellLauncher.handleStreamsNonblocking:(Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
3: aload 4
invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
4: lreturn
end local 4 5: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.io.OutputStream java.io.OutputStream
StackMap stack: java.io.IOException
astore 4
start local 4 6: aload 0
aload 4
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 runtime Lorg/jruby/Ruby;
0 7 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 7 2 output Ljava/io/OutputStream;
1 7 3 error Ljava/io/OutputStream;
2 5 4 aProcess Ljava/lang/Process;
6 7 4 e Ljava/io/IOException;
Exception table:
from to target type
1 4 5 Class java.io.IOException
MethodParameters:
Name Flags
runtime
rawArgs
output
public static long getPidFromProcess(java.lang.Process);
descriptor: (Ljava/lang/Process;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.jruby.util.ShellLauncher$ScriptThreadProcess
ifeq 2
1: aload 0
invokevirtual java.lang.Object.hashCode:()I
i2l
lreturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.jruby.util.ShellLauncher$POpenProcess
ifeq 4
3: aload 0
checkcast org.jruby.util.ShellLauncher$POpenProcess
invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getChild:()Ljava/lang/Process;
invokestatic org.jruby.util.ShellLauncher.reflectPidFromProcess:(Ljava/lang/Process;)J
lreturn
4: StackMap locals:
StackMap stack:
aload 0
invokestatic org.jruby.util.ShellLauncher.reflectPidFromProcess:(Ljava/lang/Process;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 process Ljava/lang/Process;
MethodParameters:
Name Flags
process
public static long reflectPidFromProcess(java.lang.Process);
descriptor: (Ljava/lang/Process;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.jruby.util.ShellLauncher.PID_GETTER:Lorg/jruby/util/ShellLauncher$PidGetter;
aload 0
invokeinterface org.jruby.util.ShellLauncher$PidGetter.getPid:(Ljava/lang/Process;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 process Ljava/lang/Process;
MethodParameters:
Name Flags
process
public static java.lang.Process run(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Process;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
iconst_0
invokestatic org.jruby.util.ShellLauncher.run:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/Process;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 string Lorg/jruby/runtime/builtin/IRubyObject;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
string
public static org.jruby.util.ShellLauncher$POpenProcess popen(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.io.ModeFlags);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
aconst_null
iconst_1
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
aload 0
aload 2
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 string Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 modes Lorg/jruby/util/io/ModeFlags;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
string
modes
public static org.jruby.util.ShellLauncher$POpenProcess popen(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map, org.jruby.util.io.ModeFlags);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
aload 1
aload 2
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)Ljava/lang/Process;
aload 0
aload 3
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 env Ljava/util/Map;
0 1 3 modes Lorg/jruby/util/io/ModeFlags;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
strings
env
modes
public static org.jruby.util.ShellLauncher$POpenProcess popen(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, java.util.Map, org.jruby.util.io.ModeFlags);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
aload 2
iconst_1
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
aload 0
aload 3
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 string Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 env Ljava/util/Map;
0 1 3 modes Lorg/jruby/util/io/ModeFlags;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
string
env
modes
public static org.jruby.util.ShellLauncher$POpenProcess popen(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.io.IOOptions);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
iconst_1
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 1
aastore
aconst_null
iconst_1
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
aload 0
aload 2
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 string Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 modes Lorg/jruby/util/io/IOOptions;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
string
modes
public static org.jruby.util.ShellLauncher$POpenProcess popen(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map, org.jruby.util.io.IOOptions);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
aload 1
aload 2
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)Ljava/lang/Process;
aload 0
aload 3
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 env Ljava/util/Map;
0 1 3 modes Lorg/jruby/util/io/IOOptions;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
strings
env
modes
public static org.jruby.util.ShellLauncher$POpenProcess popen3(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
aload 1
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Process;
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
strings
public static org.jruby.util.ShellLauncher$POpenProcess popen3(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/util/ShellLauncher$POpenProcess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.jruby.util.ShellLauncher$POpenProcess
dup
aload 0
aload 1
aconst_null
iload 2
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
invokespecial org.jruby.util.ShellLauncher$POpenProcess.<init>:(Ljava/lang/Process;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 addShell Z
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
strings
addShell
private static java.lang.Process popenShared(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Process;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)Ljava/lang/Process;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
strings
private static java.lang.Process popenShared(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;)Ljava/lang/Process;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokestatic org.jruby.util.ShellLauncher.popenShared:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 env Ljava/util/Map;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
strings
env
private static java.lang.Process popenShared(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], java.util.Map, boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Z)Ljava/lang/Process;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic org.jruby.util.ShellLauncher.getShell:(Lorg/jruby/Ruby;)Ljava/lang/String;
astore 4
start local 4 1: new java.io.File
dup
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 2: aload 2
ifnonnull 6
aload 1
arraylength
ifle 6
aload 0
aload 1
iconst_0
aaload
invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
dup
astore 7
start local 7 3: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 6
4: aload 1
iconst_1
aload 1
arraylength
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject[]
astore 1
5: aload 7
checkcast java.util.Map
astore 2
end local 7 6: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File
StackMap stack:
aload 1
arraylength
iconst_1
if_icmple 11
aload 0
aload 1
aload 1
arraylength
iconst_1
isub
aaload
invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
dup
astore 7
start local 7 7: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 11
8: aload 7
checkcast org.jruby.RubyHash
invokevirtual org.jruby.RubyHash.isEmpty:()Z
ifne 10
9: aload 0
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
ldc "popen3 does not support spawn options in JRuby 1.7"
invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
10: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 1
iconst_0
aload 1
arraylength
iconst_1
isub
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject[]
astore 1
end local 7 11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
aload 1
invokestatic org.jruby.util.ShellLauncher.parseCommandLine:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)[Ljava/lang/String;
astore 8
start local 8 12: new org.jruby.util.ShellLauncher$LaunchConfig
dup
aload 0
aload 1
iconst_0
invokespecial org.jruby.util.ShellLauncher$LaunchConfig.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)V
astore 9
start local 9 13: getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 14
aload 9
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInShell:()Z
goto 15
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 10
start local 10 16: iload 3
ifeq 21
aload 8
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 20
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int top int int java.lang.String[]
StackMap stack:
17: aload 14
iload 12
aaload
astore 11
start local 11 18: iload 10
aload 11
invokestatic org.jruby.util.ShellLauncher.shouldUseShell:(Ljava/lang/String;)Z
ior
istore 10
end local 11 19: iinc 12 1
StackMap locals:
StackMap stack:
20: iload 12
iload 13
if_icmplt 17
21: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int
StackMap stack:
aload 1
arraylength
iconst_1
if_icmpne 33
22: iload 10
ifeq 31
23: iconst_3
anewarray java.lang.String
astore 11
start local 11 24: aload 11
iconst_0
aload 4
aastore
25: aload 11
iconst_1
aload 4
ldc "sh"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 26
ldc "-c"
goto 27
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int java.lang.String[]
StackMap stack: java.lang.String[] int
26: ldc "/c"
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int java.lang.String[]
StackMap stack: java.lang.String[] int java.lang.String
27: aastore
28: aload 11
iconst_2
aload 1
iconst_0
aaload
invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
aastore
29: aload 0
aload 11
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 5
end local 11 start local 5 30: goto 46
end local 5 31: StackMap locals:
StackMap stack:
aload 0
aload 8
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 5
start local 5 32: goto 46
end local 5 33: StackMap locals:
StackMap stack:
iload 10
ifeq 42
34: aload 8
arraylength
iconst_2
iadd
anewarray java.lang.String
astore 11
start local 11 35: aload 11
iconst_0
aload 4
aastore
36: aload 11
iconst_1
aload 4
ldc "sh"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 37
ldc "-c"
goto 38
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int java.lang.String[]
StackMap stack: java.lang.String[] int
37: ldc "/c"
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File top java.lang.String[] org.jruby.util.ShellLauncher$LaunchConfig int java.lang.String[]
StackMap stack: java.lang.String[] int java.lang.String
38: aastore
39: aload 8
iconst_0
aload 11
iconst_2
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
40: aload 0
aload 11
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 5
end local 11 start local 5 41: goto 46
end local 5 42: StackMap locals:
StackMap stack:
aload 0
aload 8
aload 0
aload 2
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;Ljava/util/Map;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 5
end local 10 end local 9 end local 8 start local 5 43: goto 46
end local 5 StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String top java.io.File
StackMap stack: java.lang.SecurityException
44: astore 7
start local 7 45: aload 0
aload 7
invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 7 start local 5 46: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.util.Map int java.lang.String java.lang.Process java.io.File
StackMap stack:
aload 5
areturn
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 47 0 runtime Lorg/jruby/Ruby;
0 47 1 strings [Lorg/jruby/runtime/builtin/IRubyObject;
0 47 2 env Ljava/util/Map;
0 47 3 addShell Z
1 47 4 shell Ljava/lang/String;
30 31 5 childProcess Ljava/lang/Process;
32 33 5 childProcess Ljava/lang/Process;
41 42 5 childProcess Ljava/lang/Process;
43 44 5 childProcess Ljava/lang/Process;
46 47 5 childProcess Ljava/lang/Process;
2 47 6 pwd Ljava/io/File;
3 6 7 envHash Lorg/jruby/runtime/builtin/IRubyObject;
7 11 7 envHash Lorg/jruby/runtime/builtin/IRubyObject;
12 43 8 args [Ljava/lang/String;
13 43 9 lc Lorg/jruby/util/ShellLauncher$LaunchConfig;
16 43 10 useShell Z
18 19 11 arg Ljava/lang/String;
24 30 11 argArray [Ljava/lang/String;
35 41 11 argArray [Ljava/lang/String;
45 46 7 se Ljava/lang/SecurityException;
Exception table:
from to target type
2 43 44 Class java.lang.SecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
strings
env
addShell
public static java.lang.Process run(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/Process;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
iconst_0
invokestatic org.jruby.util.ShellLauncher.run:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;ZZ)Ljava/lang/Process;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 doExecutableSearch Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
rawArgs
doExecutableSearch
private static boolean hasGlobCharacter(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "*"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 1
aload 0
ldc "?"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 1
aload 0
ldc "["
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 1
aload 0
ldc "{"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 word Ljava/lang/String;
MethodParameters:
Name Flags
word
private static java.lang.String[] expandGlobs(org.jruby.Ruby, java.lang.String[]);
descriptor: (Lorg/jruby/Ruby;[Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 14
3: StackMap locals: java.util.List int
StackMap stack:
aload 1
iload 3
aaload
invokestatic org.jruby.util.ShellLauncher.hasGlobCharacter:(Ljava/lang/String;)Z
ifeq 12
4: aload 0
aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
5: new org.jruby.util.ByteList
dup
aload 1
iload 3
aaload
invokevirtual java.lang.String.getBytes:()[B
invokespecial org.jruby.util.ByteList.<init>:([B)V
iconst_0
6: invokestatic org.jruby.util.Dir.push_glob:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/util/ByteList;I)Ljava/util/List;
astore 4
start local 4 7: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: org.jruby.Ruby java.lang.String[] java.util.List int java.util.List top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.util.ByteList
astore 5
start local 5 9: aload 2
aload 5
invokevirtual org.jruby.util.ByteList.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 4 11: goto 13
12: StackMap locals: org.jruby.Ruby java.lang.String[] java.util.List int
StackMap stack:
aload 2
aload 1
iload 3
aaload
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 15: aload 2
invokeinterface java.util.List.size:()I
anewarray java.lang.String
astore 3
start local 3 16: aload 2
aload 3
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
17: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 runtime Lorg/jruby/Ruby;
0 18 1 originalArgs [Ljava/lang/String;
1 18 2 expandedList Ljava/util/List<Ljava/lang/String;>;
2 15 3 i I
7 11 4 globs Ljava/util/List<Lorg/jruby/util/ByteList;>;
9 10 5 glob Lorg/jruby/util/ByteList;
16 18 3 args [Ljava/lang/String;
MethodParameters:
Name Flags
runtime
originalArgs
public static java.lang.Process run(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], boolean, boolean);
descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;ZZ)Ljava/lang/Process;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
astore 5
start local 5 1: new java.io.File
dup
aload 5
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 2: new org.jruby.util.ShellLauncher$LaunchConfig
dup
aload 0
aload 1
iload 2
invokespecial org.jruby.util.ShellLauncher$LaunchConfig.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)V
astore 7
start local 7 3: iload 3
ifne 11
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInProcess:()Z
ifeq 11
4: aload 0
ldc "Launching in-process"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
5: new org.jruby.util.ShellLauncher$ScriptThreadProcess
dup
aload 0
6: aload 0
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
invokestatic org.jruby.util.ShellLauncher.expandGlobs:(Lorg/jruby/Ruby;[Ljava/lang/String;)[Ljava/lang/String;
aload 0
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;)[Ljava/lang/String;
aload 6
7: invokespecial org.jruby.util.ShellLauncher$ScriptThreadProcess.<init>:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)V
astore 8
start local 8 8: aload 8
invokevirtual org.jruby.util.ShellLauncher$ScriptThreadProcess.start:()V
9: aload 8
10: areturn
end local 8 11: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] int int top java.lang.String java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack:
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.shouldRunInShell:()Z
ifeq 15
12: aload 0
ldc "Launching with shell"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
13: aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForShell:()V
14: goto 17
15: StackMap locals:
StackMap stack:
aload 0
ldc "Launching directly (no shell)"
invokestatic org.jruby.util.ShellLauncher.log:(Lorg/jruby/Ruby;Ljava/lang/String;)V
16: aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.verifyExecutableForDirect:()V
17: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.jruby.util.ShellLauncher$LaunchConfig.getExecArgs:()[Ljava/lang/String;
astore 8
start local 8 18: aload 5
ldc "uri:classloader:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 24
19: new java.io.File
dup
ldc "user.dir"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
20: aload 8
aload 8
arraylength
iconst_1
isub
aaload
ldc "org.jruby.Main"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 24
21: aload 8
aload 8
arraylength
iconst_1
isub
aload 8
aload 8
arraylength
iconst_1
isub
aaload
ldc "org.jruby.Main"
22: new java.lang.StringBuilder
dup
ldc "org.jruby.Main -C "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
aastore
24: StackMap locals: java.lang.String[]
StackMap stack:
aload 0
aload 8
aload 0
invokestatic org.jruby.util.ShellLauncher.getCurrentEnv:(Lorg/jruby/Ruby;)[Ljava/lang/String;
aload 6
invokestatic org.jruby.util.ShellLauncher.buildProcess:(Lorg/jruby/Ruby;[Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 4
end local 8 start local 4 25: goto 28
end local 4 StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] int int top java.lang.String java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack: java.lang.SecurityException
26: astore 8
start local 8 27: aload 0
aload 8
invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 8 start local 4 28: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] int int java.lang.Process java.lang.String java.io.File org.jruby.util.ShellLauncher$LaunchConfig
StackMap stack:
aload 4
areturn
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 29 0 runtime Lorg/jruby/Ruby;
0 29 1 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
0 29 2 doExecutableSearch Z
0 29 3 forceExternalProcess Z
25 26 4 aProcess Ljava/lang/Process;
28 29 4 aProcess Ljava/lang/Process;
1 29 5 virtualCWD Ljava/lang/String;
2 29 6 pwd Ljava/io/File;
3 29 7 cfg Lorg/jruby/util/ShellLauncher$LaunchConfig;
8 11 8 ipScript Lorg/jruby/util/ShellLauncher$ScriptThreadProcess;
18 25 8 args [Ljava/lang/String;
27 28 8 se Ljava/lang/SecurityException;
Exception table:
from to target type
3 10 26 Class java.lang.SecurityException
11 25 26 Class java.lang.SecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
rawArgs
doExecutableSearch
forceExternalProcess
private static void handleStreams(org.jruby.Ruby, java.lang.Process, java.io.InputStream, java.io.OutputStream, java.io.OutputStream);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 5
start local 5 1: aload 1
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
astore 6
start local 6 2: aload 1
invokevirtual java.lang.Process.getOutputStream:()Ljava/io/OutputStream;
astore 7
start local 7 3: new org.jruby.util.ShellLauncher$StreamPumper
dup
aload 0
aload 5
aload 3
iconst_0
getstatic org.jruby.util.ShellLauncher$Pumper$Slave.IN:Lorg/jruby/util/ShellLauncher$Pumper$Slave;
aload 1
invokespecial org.jruby.util.ShellLauncher$StreamPumper.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/io/OutputStream;ZLorg/jruby/util/ShellLauncher$Pumper$Slave;Ljava/lang/Object;)V
astore 8
start local 8 4: new org.jruby.util.ShellLauncher$StreamPumper
dup
aload 0
aload 6
aload 4
iconst_0
getstatic org.jruby.util.ShellLauncher$Pumper$Slave.IN:Lorg/jruby/util/ShellLauncher$Pumper$Slave;
aload 1
invokespecial org.jruby.util.ShellLauncher$StreamPumper.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/io/OutputStream;ZLorg/jruby/util/ShellLauncher$Pumper$Slave;Ljava/lang/Object;)V
astore 9
start local 9 5: new org.jruby.util.ShellLauncher$StreamPumper
dup
aload 0
aload 2
aload 7
iconst_1
getstatic org.jruby.util.ShellLauncher$Pumper$Slave.OUT:Lorg/jruby/util/ShellLauncher$Pumper$Slave;
aload 1
invokespecial org.jruby.util.ShellLauncher$StreamPumper.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/io/OutputStream;ZLorg/jruby/util/ShellLauncher$Pumper$Slave;Ljava/lang/Object;)V
astore 10
start local 10 6: aload 8
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.start:()V
7: aload 9
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.start:()V
8: aload 10
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.start:()V
9: aload 8
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.join:()V
10: goto 12
StackMap locals: org.jruby.Ruby java.lang.Process java.io.InputStream java.io.OutputStream java.io.OutputStream java.io.InputStream java.io.InputStream java.io.OutputStream org.jruby.util.ShellLauncher$StreamPumper org.jruby.util.ShellLauncher$StreamPumper org.jruby.util.ShellLauncher$StreamPumper
StackMap stack: java.lang.InterruptedException
11: pop
12: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.join:()V
13: goto 15
StackMap locals:
StackMap stack: java.lang.InterruptedException
14: pop
15: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.quit:()V
16: aload 4
invokevirtual java.io.OutputStream.flush:()V
17: goto 19
StackMap locals:
StackMap stack: java.io.IOException
18: pop
19: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.OutputStream.flush:()V
20: goto 22
StackMap locals:
StackMap stack: java.io.IOException
21: pop
22: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.io.OutputStream.close:()V
23: goto 25
StackMap locals:
StackMap stack: java.io.IOException
24: pop
25: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.InputStream.close:()V
26: goto 28
StackMap locals:
StackMap stack: java.io.IOException
27: pop
28: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.InputStream.close:()V
29: goto 31
StackMap locals:
StackMap stack: java.io.IOException
30: pop
31: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.quit:()V
32: aload 9
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.quit:()V
33: aload 10
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.quit:()V
34: aload 8
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.interrupt:()V
35: aload 9
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.interrupt:()V
36: aload 10
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.interrupt:()V
37: goto 39
StackMap locals:
StackMap stack: java.lang.SecurityException
38: pop
39: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.join:()V
40: goto 42
StackMap locals:
StackMap stack: java.lang.InterruptedException
41: pop
42: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.join:()V
43: goto 45
StackMap locals:
StackMap stack: java.lang.InterruptedException
44: pop
45: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.join:()V
46: goto 48
StackMap locals:
StackMap stack: java.lang.InterruptedException
47: pop
48: StackMap locals:
StackMap stack:
return
end local 10 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 49 0 runtime Lorg/jruby/Ruby;
0 49 1 p Ljava/lang/Process;
0 49 2 in Ljava/io/InputStream;
0 49 3 out Ljava/io/OutputStream;
0 49 4 err Ljava/io/OutputStream;
1 49 5 pOut Ljava/io/InputStream;
2 49 6 pErr Ljava/io/InputStream;
3 49 7 pIn Ljava/io/OutputStream;
4 49 8 t1 Lorg/jruby/util/ShellLauncher$StreamPumper;
5 49 9 t2 Lorg/jruby/util/ShellLauncher$StreamPumper;
6 49 10 t3 Lorg/jruby/util/ShellLauncher$StreamPumper;
Exception table:
from to target type
9 10 11 Class java.lang.InterruptedException
12 13 14 Class java.lang.InterruptedException
16 17 18 Class java.io.IOException
19 20 21 Class java.io.IOException
22 23 24 Class java.io.IOException
25 26 27 Class java.io.IOException
28 29 30 Class java.io.IOException
31 37 38 Class java.lang.SecurityException
39 40 41 Class java.lang.InterruptedException
42 43 44 Class java.lang.InterruptedException
45 46 47 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
p
in
out
err
private static void handleStreamsNonblocking(org.jruby.Ruby, java.lang.Process, java.io.OutputStream, java.io.OutputStream);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Process;Ljava/io/OutputStream;Ljava/io/OutputStream;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 4
start local 4 1: aload 1
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
astore 5
start local 5 2: new org.jruby.util.ShellLauncher$StreamPumper
dup
aload 0
aload 4
aload 2
iconst_0
getstatic org.jruby.util.ShellLauncher$Pumper$Slave.IN:Lorg/jruby/util/ShellLauncher$Pumper$Slave;
aload 1
invokespecial org.jruby.util.ShellLauncher$StreamPumper.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/io/OutputStream;ZLorg/jruby/util/ShellLauncher$Pumper$Slave;Ljava/lang/Object;)V
astore 6
start local 6 3: new org.jruby.util.ShellLauncher$StreamPumper
dup
aload 0
aload 5
aload 3
iconst_0
getstatic org.jruby.util.ShellLauncher$Pumper$Slave.IN:Lorg/jruby/util/ShellLauncher$Pumper$Slave;
aload 1
invokespecial org.jruby.util.ShellLauncher$StreamPumper.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/io/OutputStream;ZLorg/jruby/util/ShellLauncher$Pumper$Slave;Ljava/lang/Object;)V
astore 7
start local 7 4: aload 6
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.start:()V
5: aload 7
invokevirtual org.jruby.util.ShellLauncher$StreamPumper.start:()V
6: return
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 7 0 runtime Lorg/jruby/Ruby;
0 7 1 p Ljava/lang/Process;
0 7 2 out Ljava/io/OutputStream;
0 7 3 err Ljava/io/OutputStream;
1 7 4 pOut Ljava/io/InputStream;
2 7 5 pErr Ljava/io/InputStream;
3 7 6 t1 Lorg/jruby/util/ShellLauncher$StreamPumper;
4 7 7 t2 Lorg/jruby/util/ShellLauncher$StreamPumper;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
runtime
p
out
err
private static java.lang.String[] parseCommandLine(org.jruby.runtime.ThreadContext, org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
iconst_1
if_icmpne 20
1: aload 2
invokestatic org.jruby.util.ShellLauncher.hasLeadingArgvArray:([Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 4
2: iconst_1
anewarray java.lang.String
dup
iconst_0
aload 2
iconst_0
aaload
checkcast org.jruby.RubyArray
invokestatic org.jruby.util.ShellLauncher.getPathEntry:(Lorg/jruby/RubyArray;)Ljava/lang/String;
aastore
astore 3
start local 3 3: goto 30
end local 3 4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
dup
astore 4
monitorenter
5: aload 1
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "jruby/path_helper"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
6: aload 4
monitorexit
7: goto 10
StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] top org.jruby.runtime.load.LoadService
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
10: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 1
ldc "JRuby::PathHelper"
invokevirtual org.jruby.Ruby.getClassFromPath:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 4
start local 4 11: aload 0
aload 4
ldc "smart_split_command"
aload 2
12: invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyArray
astore 5
start local 5 13: aload 5
invokevirtual org.jruby.RubyArray.getLength:()I
anewarray java.lang.String
astore 3
start local 3 14: iconst_0
istore 6
start local 6 15: goto 18
16: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] java.lang.String[] org.jruby.RubyModule org.jruby.RubyArray int
StackMap stack:
aload 3
iload 6
aload 5
iload 6
invokevirtual org.jruby.RubyArray.entry:(I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aastore
17: iinc 6 1
StackMap locals:
StackMap stack:
18: iload 6
aload 5
invokevirtual org.jruby.RubyArray.getLength:()I
if_icmplt 16
end local 6 end local 5 end local 4 19: goto 30
end local 3 20: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 2
arraylength
anewarray java.lang.String
astore 3
start local 3 21: iconst_0
istore 4
start local 4 22: aload 2
invokestatic org.jruby.util.ShellLauncher.hasLeadingArgvArray:([Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 25
23: iconst_1
istore 4
24: aload 3
iconst_0
aload 2
iconst_0
aaload
checkcast org.jruby.RubyArray
invokestatic org.jruby.util.ShellLauncher.getPathEntry:(Lorg/jruby/RubyArray;)Ljava/lang/String;
aastore
25: StackMap locals: java.lang.String[] int
StackMap stack:
iload 4
istore 5
start local 5 26: goto 29
27: StackMap locals: int
StackMap stack:
aload 3
iload 5
aload 2
iload 5
aaload
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aastore
28: iinc 5 1
StackMap locals:
StackMap stack:
29: iload 5
aload 2
arraylength
if_icmplt 27
end local 5 end local 4 30: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 context Lorg/jruby/runtime/ThreadContext;
0 31 1 runtime Lorg/jruby/Ruby;
0 31 2 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
3 4 3 args [Ljava/lang/String;
14 20 3 args [Ljava/lang/String;
21 31 3 args [Ljava/lang/String;
11 19 4 pathHelper Lorg/jruby/RubyModule;
13 19 5 parts Lorg/jruby/RubyArray;
15 19 6 i I
22 30 4 start I
26 30 5 i I
Exception table:
from to target type
5 7 8 any
8 9 8 any
MethodParameters:
Name Flags
context
runtime
rawArgs
private static boolean hasLeadingArgvArray(org.jruby.runtime.builtin.IRubyObject[]);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
if_icmplt 4
1: aload 0
iconst_0
aaload
instanceof org.jruby.RubyArray
ifeq 4
2: aload 0
iconst_0
aaload
checkcast org.jruby.RubyArray
invokevirtual org.jruby.RubyArray.getLength:()I
iconst_2
if_icmpne 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 rawArgs [Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
rawArgs
private static java.lang.String getPathEntry(org.jruby.RubyArray);
descriptor: (Lorg/jruby/RubyArray;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.jruby.RubyArray.entry:(I)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 initArray Lorg/jruby/RubyArray;
MethodParameters:
Name Flags
initArray
private static java.lang.String getShell(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic org.jruby.ext.rbconfig.RbConfigLibrary.jrubyShell:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
public static boolean shouldUseShell(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual java.lang.String.toCharArray:()[C
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: java.lang.String int top int int char[]
StackMap stack:
2: aload 5
iload 3
caload
istore 2
start local 2 3: iload 2
bipush 32
if_icmpeq 5
iload 2
invokestatic java.lang.Character.isLetter:(C)Z
ifne 5
ldc "*?{}[]<>()~&|\\$;'`\"\n"
iload 2
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 5
4: iconst_1
istore 1
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: getstatic jnr.posix.util.Platform.IS_WINDOWS:Z
ifeq 9
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
if_icmplt 9
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 64
if_icmpne 9
8: iconst_1
istore 1
9: StackMap locals: java.lang.String int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 command Ljava/lang/String;
1 10 1 useShell Z
3 5 2 c C
MethodParameters:
Name Flags
command
static void log(org.jruby.Ruby, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyInstanceConfig.DEBUG_LAUNCHING:Z
ifeq 2
1: aload 0
invokevirtual org.jruby.Ruby.getErr:()Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ShellLauncher: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
runtime
msg
public static java.io.OutputStream unwrapBufferedStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.unwrapBufferedStream:(Ljava/io/OutputStream;)Ljava/io/OutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 filteredStream Ljava/io/OutputStream;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
filteredStream
public static java.io.InputStream unwrapBufferedStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.unwrapBufferedStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 filteredStream Ljava/io/InputStream;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
filteredStream
public static java.io.OutputStream unwrapFilterOutputStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.unwrapFilterOutputStream:(Ljava/io/OutputStream;)Ljava/io/OutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 filteredStream Ljava/io/OutputStream;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
filteredStream
public static java.io.InputStream unwrapFilterInputStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.unwrapFilterInputStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 filteredStream Ljava/io/InputStream;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
filteredStream
}
SourceFile: "ShellLauncher.java"
NestMembers:
org.jruby.util.ShellLauncher$1 org.jruby.util.ShellLauncher$2 org.jruby.util.ShellLauncher$3 org.jruby.util.ShellLauncher$4 org.jruby.util.ShellLauncher$ChannelPumper org.jruby.util.ShellLauncher$LaunchConfig org.jruby.util.ShellLauncher$POpenProcess org.jruby.util.ShellLauncher$PidGetter org.jruby.util.ShellLauncher$Pumper org.jruby.util.ShellLauncher$Pumper$Slave org.jruby.util.ShellLauncher$ScriptThreadProcess org.jruby.util.ShellLauncher$StreamPumper
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
org.jruby.util.ShellLauncher$1
org.jruby.util.ShellLauncher$2
org.jruby.util.ShellLauncher$3
org.jruby.util.ShellLauncher$4
private ChannelPumper = org.jruby.util.ShellLauncher$ChannelPumper of org.jruby.util.ShellLauncher
public LaunchConfig = org.jruby.util.ShellLauncher$LaunchConfig of org.jruby.util.ShellLauncher
public POpenProcess = org.jruby.util.ShellLauncher$POpenProcess of org.jruby.util.ShellLauncher
private abstract PidGetter = org.jruby.util.ShellLauncher$PidGetter of org.jruby.util.ShellLauncher
private abstract Pumper = org.jruby.util.ShellLauncher$Pumper of org.jruby.util.ShellLauncher
public final Slave = org.jruby.util.ShellLauncher$Pumper$Slave of org.jruby.util.ShellLauncher$Pumper
private ScriptThreadProcess = org.jruby.util.ShellLauncher$ScriptThreadProcess of org.jruby.util.ShellLauncher
private StreamPumper = org.jruby.util.ShellLauncher$StreamPumper of org.jruby.util.ShellLauncher