class sun.print.UnixPrintServiceLookup$1 implements java.security.PrivilegedExceptionAction
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.print.UnixPrintServiceLookup$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
void <init>(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.print.UnixPrintServiceLookup$1 this
0: .line 789
aload 0 /* this */
aload 1
putfield sun.print.UnixPrintServiceLookup$1.val$cmd:[Ljava/lang/String;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.print.UnixPrintServiceLookup$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/print/UnixPrintServiceLookup$1;
MethodParameters:
Name Flags
val$cmd final
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=1
start local 0 // sun.print.UnixPrintServiceLookup$1 this
0: .line 793
aconst_null
astore 2 /* bufferedReader */
start local 2 // java.io.BufferedReader bufferedReader
1: .line 794
ldc "prn"
ldc "xc"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempFile:(Ljava/lang/String;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
astore 3 /* f */
start local 3 // java.io.File f
2: .line 795
aload 0 /* this */
getfield sun.print.UnixPrintServiceLookup$1.val$cmd:[Ljava/lang/String;
iconst_2
new java.lang.StringBuilder
dup
aload 0 /* this */
getfield sun.print.UnixPrintServiceLookup$1.val$cmd:[Ljava/lang/String;
iconst_2
aaload
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 3 /* f */
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
3: .line 797
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 0 /* this */
getfield sun.print.UnixPrintServiceLookup$1.val$cmd:[Ljava/lang/String;
invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
astore 1 /* proc */
start local 1 // java.lang.Process proc
4: .line 799
iconst_0
istore 4 /* done */
start local 4 // boolean done
5: .line 800
goto 10
6: .line 802
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File int
StackMap stack:
aload 1 /* proc */
invokevirtual java.lang.Process.waitFor:()I
pop
7: .line 803
iconst_1
istore 4 /* done */
8: .line 804
goto 10
StackMap locals:
StackMap stack: java.lang.InterruptedException
9: pop
10: .line 800
StackMap locals:
StackMap stack:
iload 4 /* done */
ifeq 6
11: .line 808
aload 1 /* proc */
invokevirtual java.lang.Process.exitValue:()I
ifne 35
12: .line 809
new java.io.FileReader
dup
aload 3 /* f */
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
astore 5 /* reader */
start local 5 // java.io.FileReader reader
13: .line 810
new java.io.BufferedReader
dup
aload 5 /* reader */
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 2 /* bufferedReader */
14: .line 812
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7 /* results */
start local 7 // java.util.ArrayList results
15: .line 813
goto 17
start local 6 // java.lang.String line
16: .line 815
StackMap locals: java.io.FileReader java.lang.String java.util.ArrayList
StackMap stack:
aload 7 /* results */
aload 6 /* line */
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 // java.lang.String line
17: .line 813
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File int java.io.FileReader top java.util.ArrayList
StackMap stack:
aload 2 /* bufferedReader */
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 6 /* line */
start local 6 // java.lang.String line
18: ifnonnull 16
19: .line 817
aload 7 /* results */
astore 9
20: .line 820
aload 3 /* f */
invokevirtual java.io.File.delete:()Z
pop
21: .line 822
aload 2 /* bufferedReader */
ifnull 23
22: .line 823
aload 2 /* bufferedReader */
invokevirtual java.io.BufferedReader.close:()V
23: .line 825
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File int java.io.FileReader java.lang.String java.util.ArrayList top java.lang.Object
StackMap stack:
aload 1 /* proc */
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
24: .line 826
aload 1 /* proc */
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
25: .line 827
aload 1 /* proc */
invokevirtual java.lang.Process.getOutputStream:()Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
26: .line 817
aload 9
areturn
end local 7 // java.util.ArrayList results
end local 6 // java.lang.String line
end local 5 // java.io.FileReader reader
end local 4 // boolean done
27: .line 819
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File
StackMap stack: java.lang.Throwable
astore 8
28: .line 820
aload 3 /* f */
invokevirtual java.io.File.delete:()Z
pop
29: .line 822
aload 2 /* bufferedReader */
ifnull 31
30: .line 823
aload 2 /* bufferedReader */
invokevirtual java.io.BufferedReader.close:()V
31: .line 825
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File top top top top java.lang.Throwable
StackMap stack:
aload 1 /* proc */
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
32: .line 826
aload 1 /* proc */
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
33: .line 827
aload 1 /* proc */
invokevirtual java.lang.Process.getOutputStream:()Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
34: .line 828
aload 8
athrow
35: .line 820
StackMap locals: sun.print.UnixPrintServiceLookup$1 java.lang.Process java.io.BufferedReader java.io.File
StackMap stack:
aload 3 /* f */
invokevirtual java.io.File.delete:()Z
pop
36: .line 822
aload 2 /* bufferedReader */
ifnull 38
37: .line 823
aload 2 /* bufferedReader */
invokevirtual java.io.BufferedReader.close:()V
38: .line 825
StackMap locals:
StackMap stack:
aload 1 /* proc */
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
39: .line 826
aload 1 /* proc */
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
40: .line 827
aload 1 /* proc */
invokevirtual java.lang.Process.getOutputStream:()Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
41: .line 829
aconst_null
areturn
end local 3 // java.io.File f
end local 2 // java.io.BufferedReader bufferedReader
end local 1 // java.lang.Process proc
end local 0 // sun.print.UnixPrintServiceLookup$1 this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/print/UnixPrintServiceLookup$1;
4 42 1 proc Ljava/lang/Process;
1 42 2 bufferedReader Ljava/io/BufferedReader;
2 42 3 f Ljava/io/File;
5 27 4 done Z
13 27 5 reader Ljava/io/FileReader;
16 17 6 line Ljava/lang/String;
18 27 6 line Ljava/lang/String;
15 27 7 results Ljava/util/ArrayList;
Exception table:
from to target type
6 8 9 Class java.lang.InterruptedException
4 20 27 any
Exceptions:
throws java.io.IOException
}
SourceFile: "UnixPrintServiceLookup.java"
EnclosingMethod: sun.print.UnixPrintServiceLookup.execCmd:(Ljava/lang/String;)[Ljava/lang/String;
NestHost: sun.print.UnixPrintServiceLookup
InnerClasses:
sun.print.UnixPrintServiceLookup$1