class picocli.CommandLine$Model$UsageMessageSpec$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: picocli.CommandLine$Model$UsageMessageSpec$1
super_class: java.lang.Object
{
private final java.lang.String[] val$cmd;
descriptor: [Ljava/lang/String;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final picocli.CommandLine$Tracer val$tracer;
descriptor: Lpicocli/CommandLine$Tracer;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.util.concurrent.atomic.AtomicInteger val$size;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(java.lang.String[], picocli.CommandLine$Tracer, java.util.concurrent.atomic.AtomicInteger);
descriptor: ([Ljava/lang/String;Lpicocli/CommandLine$Tracer;Ljava/util/concurrent/atomic/AtomicInteger;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield picocli.CommandLine$Model$UsageMessageSpec$1.val$cmd:[Ljava/lang/String;
aload 0
aload 2
putfield picocli.CommandLine$Model$UsageMessageSpec$1.val$tracer:Lpicocli/CommandLine$Tracer;
aload 0
aload 3
putfield picocli.CommandLine$Model$UsageMessageSpec$1.val$size:Ljava/util/concurrent/atomic/AtomicInteger;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpicocli/CommandLine$Model$UsageMessageSpec$1;
MethodParameters:
Name Flags
val$cmd final
val$tracer final
val$size final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: new java.lang.ProcessBuilder
dup
aload 0
getfield picocli.CommandLine$Model$UsageMessageSpec$1.val$cmd:[Ljava/lang/String;
invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
astore 3
start local 3 3: aload 0
getfield picocli.CommandLine$Model$UsageMessageSpec$1.val$tracer:Lpicocli/CommandLine$Tracer;
ldc "getTerminalWidth() executing command %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual java.lang.ProcessBuilder.command:()Ljava/util/List;
aastore
invokevirtual picocli.CommandLine$Tracer.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
4: ldc "java.lang.ProcessBuilder$Redirect"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 5: aload 4
ldc "INHERIT"
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 6: ldc Ljava/lang/ProcessBuilder;
ldc "redirectError"
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
start local 6 7: aload 6
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 3
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 1
9: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 1
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 2
10: aconst_null
astore 7
start local 7 11: ldc ""
astore 8
start local 8 12: goto 14
13: StackMap locals: picocli.CommandLine$Model$UsageMessageSpec$1 java.lang.Process java.io.BufferedReader java.lang.ProcessBuilder java.lang.Class java.lang.Object java.lang.reflect.Method java.lang.String java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 7
ifnonnull 13
15: aload 0
getfield picocli.CommandLine$Model$UsageMessageSpec$1.val$tracer:Lpicocli/CommandLine$Tracer;
ldc "getTerminalWidth() parsing output: %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
aastore
invokevirtual picocli.CommandLine$Tracer.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
16: ldc ".*olumns(:)?\\s+(\\d+)\\D.*"
bipush 32
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
astore 9
start local 9 17: aload 9
aload 8
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 10
start local 10 18: aload 10
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 29
19: aload 0
getfield picocli.CommandLine$Model$UsageMessageSpec$1.val$size:Ljava/util/concurrent/atomic/AtomicInteger;
aload 10
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 20: goto 29
StackMap locals: picocli.CommandLine$Model$UsageMessageSpec$1 java.lang.Process java.io.BufferedReader
StackMap stack: java.lang.Exception
21: astore 3
start local 3 22: aload 0
getfield picocli.CommandLine$Model$UsageMessageSpec$1.val$tracer:Lpicocli/CommandLine$Tracer;
ldc "getTerminalWidth() ERROR: %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual picocli.CommandLine$Tracer.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 3 23: aload 1
ifnull 24
aload 1
invokevirtual java.lang.Process.destroy:()V
24: StackMap locals:
StackMap stack:
aload 2
invokestatic picocli.CommandLine.close:(Ljava/io/Closeable;)V
goto 31
25: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
26: aload 1
ifnull 27
aload 1
invokevirtual java.lang.Process.destroy:()V
27: StackMap locals: picocli.CommandLine$Model$UsageMessageSpec$1 java.lang.Process java.io.BufferedReader top top top top top top top top java.lang.Throwable
StackMap stack:
aload 2
invokestatic picocli.CommandLine.close:(Ljava/io/Closeable;)V
28: aload 11
athrow
29: StackMap locals: picocli.CommandLine$Model$UsageMessageSpec$1 java.lang.Process java.io.BufferedReader
StackMap stack:
aload 1
ifnull 30
aload 1
invokevirtual java.lang.Process.destroy:()V
30: StackMap locals:
StackMap stack:
aload 2
invokestatic picocli.CommandLine.close:(Ljava/io/Closeable;)V
31: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lpicocli/CommandLine$Model$UsageMessageSpec$1;
1 32 1 proc Ljava/lang/Process;
2 32 2 reader Ljava/io/BufferedReader;
3 20 3 pb Ljava/lang/ProcessBuilder;
5 20 4 redirectClass Ljava/lang/Class<*>;
6 20 5 INHERIT Ljava/lang/Object;
7 20 6 redirectError Ljava/lang/reflect/Method;
11 20 7 line Ljava/lang/String;
12 20 8 txt Ljava/lang/String;
17 20 9 pattern Ljava/util/regex/Pattern;
18 20 10 matcher Ljava/util/regex/Matcher;
22 23 3 ignored Ljava/lang/Exception;
Exception table:
from to target type
2 20 21 Class java.lang.Exception
2 23 25 any
}
SourceFile: "CommandLine.java"
EnclosingMethod: picocli.CommandLine$Model$UsageMessageSpec.detectTerminalWidth:()I
NestHost: picocli.CommandLine
InnerClasses:
public final Model = picocli.CommandLine$Model of picocli.CommandLine
public UsageMessageSpec = picocli.CommandLine$Model$UsageMessageSpec of picocli.CommandLine$Model
picocli.CommandLine$Model$UsageMessageSpec$1
Tracer = picocli.CommandLine$Tracer of picocli.CommandLine