public class sun.net.www.protocol.ftp.FtpURLConnection extends sun.net.www.URLConnection
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.net.www.protocol.ftp.FtpURLConnection
super_class: sun.net.www.URLConnection
{
sun.net.www.protocol.http.HttpURLConnection http;
descriptor: Lsun/net/www/protocol/http/HttpURLConnection;
flags: (0x0000)
private java.net.Proxy instProxy;
descriptor: Ljava/net/Proxy;
flags: (0x0002) ACC_PRIVATE
java.io.InputStream is;
descriptor: Ljava/io/InputStream;
flags: (0x0000)
java.io.OutputStream os;
descriptor: Ljava/io/OutputStream;
flags: (0x0000)
sun.net.ftp.FtpClient ftp;
descriptor: Lsun/net/ftp/FtpClient;
flags: (0x0000)
java.security.Permission permission;
descriptor: Ljava/security/Permission;
flags: (0x0000)
java.lang.String password;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String user;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String host;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String pathname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String filename;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String fullpath;
descriptor: Ljava/lang/String;
flags: (0x0000)
int port;
descriptor: I
flags: (0x0000)
static final int NONE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int ASCII;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int BIN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int DIR;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
int type;
descriptor: I
flags: (0x0000)
private int connectTimeout;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int readTimeout;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static java.net.URL checkURL(java.net.URL);
descriptor: (Ljava/net/URL;)Ljava/net/URL;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
bipush 10
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmple 4
2: new java.net.MalformedURLException
dup
ldc "Illegal character in URL"
invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
astore 1
start local 1 3: new java.lang.IllegalArgumentException
dup
aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 4: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.net.util.IPAddressUtil.checkAuthority:(Ljava/net/URL;)Ljava/lang/String;
astore 1
start local 1 5: aload 1
ifnull 8
6: new java.net.MalformedURLException
dup
aload 1
invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: new java.lang.IllegalArgumentException
dup
aload 2
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 2
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 8: StackMap locals: java.lang.String
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 u Ljava/net/URL;
3 4 1 mfue Ljava/lang/Exception;
5 9 1 s Ljava/lang/String;
7 8 2 mfue Ljava/lang/Exception;
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
u
public void <init>(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial sun.net.www.protocol.ftp.FtpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 2 1 url Ljava/net/URL;
MethodParameters:
Name Flags
url
void <init>(java.net.URL, java.net.Proxy);
descriptor: (Ljava/net/URL;Ljava/net/Proxy;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic sun.net.www.protocol.ftp.FtpURLConnection.checkURL:(Ljava/net/URL;)Ljava/net/URL;
invokespecial sun.net.www.URLConnection.<init>:(Ljava/net/URL;)V
1: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
2: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
3: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
4: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
5: aload 0
iconst_0
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
6: aload 0
iconst_m1
putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
7: aload 0
iconst_m1
putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
8: aload 0
aload 2
putfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
9: aload 0
aload 1
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
10: aload 0
aload 1
invokevirtual java.net.URL.getPort:()I
putfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
11: aload 1
invokevirtual java.net.URL.getUserInfo:()Ljava/lang/String;
astore 3
start local 3 12: aload 3
ifnull 20
13: aload 3
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
istore 4
start local 4 14: iload 4
iconst_m1
if_icmpne 18
15: aload 0
aload 3
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
16: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
17: goto 20
18: StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.URL java.net.Proxy java.lang.String int
StackMap stack:
aload 0
aload 3
iconst_0
iload 4
iinc 4 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
19: aload 0
aload 3
iload 4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
end local 4 20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 21 1 url Ljava/net/URL;
0 21 2 p Ljava/net/Proxy;
12 21 3 userInfo Ljava/lang/String;
14 20 4 delimiter I
MethodParameters:
Name Flags
url
p
private void setTimeouts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
ifnull 5
1: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
iflt 3
2: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
invokevirtual sun.net.ftp.FtpClient.setConnectTimeout:(I)Lsun/net/ftp/FtpClient;
pop
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
iflt 5
4: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
invokevirtual sun.net.ftp.FtpClient.setReadTimeout:(I)Lsun/net/ftp/FtpClient;
pop
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
public synchronized void connect();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 3: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
ifnonnull 34
4: new sun.net.www.protocol.ftp.FtpURLConnection$1
dup
aload 0
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$1.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.ProxySelector
astore 2
start local 2 6: aload 2
ifnull 46
7: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
invokestatic sun.net.www.ParseUtil.toURI:(Ljava/net/URL;)Ljava/net/URI;
astore 3
start local 3 8: aload 2
aload 3
invokevirtual java.net.ProxySelector.select:(Ljava/net/URI;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 9: goto 32
10: StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy java.net.ProxySelector java.net.URI java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.Proxy
astore 1
11: aload 1
ifnull 46
aload 1
getstatic java.net.Proxy.NO_PROXY:Ljava/net/Proxy;
if_acmpeq 46
12: aload 1
invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
getstatic java.net.Proxy$Type.SOCKS:Ljava/net/Proxy$Type;
if_acmpne 14
13: goto 46
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
if_acmpne 16
15: aload 1
invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
instanceof java.net.InetSocketAddress
ifne 18
16: StackMap locals:
StackMap stack:
aload 2
aload 3
aload 1
invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
new java.io.IOException
dup
ldc "Wrong proxy type"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual java.net.ProxySelector.connectFailed:(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V
17: goto 32
18: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
astore 5
start local 5 19: aload 0
new sun.net.www.protocol.http.HttpURLConnection
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
aload 1
invokespecial sun.net.www.protocol.http.HttpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
20: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
21: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
22: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
iflt 24
23: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
24: StackMap locals: java.net.InetSocketAddress
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
iflt 26
25: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
27: aload 0
iconst_1
putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
28: return
29: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 30: aload 2
aload 3
aload 5
aload 6
invokevirtual java.net.ProxySelector.connectFailed:(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V
31: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
end local 6 end local 5 32: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 4 end local 3 end local 2 33: goto 46
34: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
astore 1
35: aload 1
invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
if_acmpne 46
36: aload 0
new sun.net.www.protocol.http.HttpURLConnection
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
invokespecial sun.net.www.protocol.http.HttpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
37: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
38: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
39: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
iflt 41
40: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
41: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
iflt 43
42: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
43: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
44: aload 0
iconst_1
putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
45: return
46: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
ifnonnull 55
47: aload 0
ldc "anonymous"
putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
48: new sun.security.action.GetPropertyAction
dup
ldc "java.version"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
49: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 50: aload 0
51: new sun.security.action.GetPropertyAction
dup
ldc "ftp.protocol.user"
52: new java.lang.StringBuilder
dup
ldc "Java"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
53: invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
54: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
end local 2 55: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.net.ftp.FtpClient.create:()Lsun/net/ftp/FtpClient;
putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
56: aload 1
ifnull 58
57: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 1
invokevirtual sun.net.ftp.FtpClient.setProxy:(Ljava/net/Proxy;)Lsun/net/ftp/FtpClient;
pop
58: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setTimeouts:()V
59: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
iconst_m1
if_icmpeq 62
60: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
new java.net.InetSocketAddress
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
invokevirtual sun.net.ftp.FtpClient.connect:(Ljava/net/SocketAddress;)Lsun/net/ftp/FtpClient;
pop
61: goto 73
62: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
new java.net.InetSocketAddress
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
invokestatic sun.net.ftp.FtpClient.defaultPort:()I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
invokevirtual sun.net.ftp.FtpClient.connect:(Ljava/net/SocketAddress;)Lsun/net/ftp/FtpClient;
pop
63: goto 73
StackMap locals:
StackMap stack: java.net.UnknownHostException
64: astore 2
start local 2 65: aload 2
athrow
end local 2 66: StackMap locals:
StackMap stack: sun.net.ftp.FtpProtocolException
astore 2
start local 2 67: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
ifnull 72
68: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.close:()V
69: goto 72
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy sun.net.ftp.FtpProtocolException
StackMap stack: java.io.IOException
70: astore 3
start local 3 71: aload 2
aload 3
invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
end local 3 72: StackMap locals:
StackMap stack:
new java.io.IOException
dup
aload 2
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 73: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
ifnonnull 74
aconst_null
goto 75
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy
StackMap stack: sun.net.ftp.FtpClient java.lang.String
74: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy
StackMap stack: sun.net.ftp.FtpClient java.lang.String char[]
75: invokevirtual sun.net.ftp.FtpClient.login:(Ljava/lang/String;[C)Lsun/net/ftp/FtpClient;
pop
76: goto 80
StackMap locals:
StackMap stack: sun.net.ftp.FtpProtocolException
77: pop
78: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.close:()V
79: new sun.net.ftp.FtpLoginException
dup
ldc "Invalid username/password"
invokespecial sun.net.ftp.FtpLoginException.<init>:(Ljava/lang/String;)V
athrow
80: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
81: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
3 82 1 p Ljava/net/Proxy;
6 33 2 sel Ljava/net/ProxySelector;
8 33 3 uri Ljava/net/URI;
9 33 4 it Ljava/util/Iterator<Ljava/net/Proxy;>;
19 32 5 paddr Ljava/net/InetSocketAddress;
30 32 6 ioe Ljava/io/IOException;
50 55 2 vers Ljava/lang/String;
65 66 2 e Ljava/net/UnknownHostException;
67 73 2 fe Lsun/net/ftp/FtpProtocolException;
71 72 3 ioe Ljava/io/IOException;
Exception table:
from to target type
19 28 29 Class java.io.IOException
55 63 64 Class java.net.UnknownHostException
55 63 66 Class sun.net.ftp.FtpProtocolException
68 69 70 Class java.io.IOException
73 76 77 Class sun.net.ftp.FtpProtocolException
Exceptions:
throws java.io.IOException
private void decodePath(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc ";type="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
iflt 10
2: aload 1
iload 2
bipush 6
iadd
aload 1
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 3: ldc "i"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 5
4: aload 0
iconst_2
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
5: StackMap locals: int java.lang.String
StackMap stack:
ldc "a"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 7
6: aload 0
iconst_1
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
7: StackMap locals:
StackMap stack:
ldc "d"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 9
8: aload 0
iconst_3
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
9: StackMap locals:
StackMap stack:
aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
end local 3 10: StackMap locals:
StackMap stack:
aload 1
ifnull 13
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmple 13
11: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 13
12: aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
13: StackMap locals:
StackMap stack:
aload 1
ifnull 14
aload 1
invokevirtual java.lang.String.length:()I
ifne 15
14: StackMap locals:
StackMap stack:
ldc "./"
astore 1
15: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 25
16: aload 1
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
17: iload 2
ifle 22
18: aload 0
aload 1
iload 2
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
19: aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
20: aload 0
aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
21: goto 27
22: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
23: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
24: goto 27
25: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
26: aload 0
aconst_null
putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
ifnull 32
28: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
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 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
ifnull 29
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
goto 30
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.lang.String int
StackMap stack: sun.net.www.protocol.ftp.FtpURLConnection java.lang.StringBuilder
29: ldc ""
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.lang.String int
StackMap stack: sun.net.www.protocol.ftp.FtpURLConnection java.lang.StringBuilder java.lang.String
30: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
31: goto 33
32: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
putfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 34 1 path Ljava/lang/String;
1 34 2 i I
3 10 3 s1 Ljava/lang/String;
MethodParameters:
Name Flags
path
private void cd(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 5
3: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 1
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.net.ftp.FtpClient.changeDirectory:(Ljava/lang/String;)Lsun/net/ftp/FtpClient;
pop
4: return
5: StackMap locals:
StackMap stack:
new java.util.StringTokenizer
dup
aload 1
ldc "/"
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 2
start local 2 6: goto 8
7: StackMap locals: java.util.StringTokenizer
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 2
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.net.ftp.FtpClient.changeDirectory:(Ljava/lang/String;)Lsun/net/ftp/FtpClient;
pop
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 7
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 10 1 path Ljava/lang/String;
6 10 2 token Ljava/util/StringTokenizer;
Exceptions:
throws sun.net.ftp.FtpProtocolException, java.io.IOException
MethodParameters:
Name Flags
path
public java.io.InputStream getInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
ifne 2
1: aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
ifnull 4
3: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
invokevirtual sun.net.www.protocol.http.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
ifnull 6
5: new java.io.IOException
dup
ldc "Already opened for output"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
ifnull 8
7: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
areturn
8: StackMap locals:
StackMap stack:
new sun.net.www.MessageHeader
dup
invokespecial sun.net.www.MessageHeader.<init>:()V
astore 1
start local 1 9: iconst_0
istore 2
start local 2 10: aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.decodePath:(Ljava/lang/String;)V
11: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
ifnull 12
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
iconst_3
if_icmpne 19
12: StackMap locals: sun.net.www.MessageHeader int
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
pop
13: aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
14: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
ifnonnull 17
15: aload 0
new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
dup
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aconst_null
invokevirtual sun.net.ftp.FtpClient.list:(Ljava/lang/String;)Ljava/io/InputStream;
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
16: goto 25
17: StackMap locals:
StackMap stack:
aload 0
new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
dup
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
invokevirtual sun.net.ftp.FtpClient.nameList:(Ljava/lang/String;)Ljava/io/InputStream;
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
18: goto 25
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
iconst_1
if_icmpne 22
20: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
pop
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
pop
23: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
24: aload 0
new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
dup
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
invokevirtual sun.net.ftp.FtpClient.getFileStream:(Ljava/lang/String;)Ljava/io/InputStream;
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.getLastTransferSize:()J
lstore 3
start local 3 26: aload 1
ldc "content-length"
lload 3
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
27: lload 3
lconst_0
lcmp
ifle 37
28: invokestatic sun.net.ProgressMonitor.getDefault:()Lsun/net/ProgressMonitor;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
ldc "GET"
invokevirtual sun.net.ProgressMonitor.shouldMeterInput:(Ljava/net/URL;Ljava/lang/String;)Z
istore 5
start local 5 29: aconst_null
astore 6
start local 6 30: iload 5
ifeq 33
31: new sun.net.ProgressSource
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
ldc "GET"
lload 3
invokespecial sun.net.ProgressSource.<init>:(Ljava/net/URL;Ljava/lang/String;J)V
astore 6
32: aload 6
invokevirtual sun.net.ProgressSource.beginTracking:()V
33: StackMap locals: long int sun.net.ProgressSource
StackMap stack:
aload 0
new sun.net.www.MeteredStream
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
aload 6
lload 3
invokespecial sun.net.www.MeteredStream.<init>:(Ljava/io/InputStream;Lsun/net/ProgressSource;J)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
end local 6 end local 5 end local 3 34: goto 37
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
StackMap stack: java.lang.Exception
35: astore 3
start local 3 36: aload 3
invokevirtual java.lang.Exception.printStackTrace:()V
end local 3 37: StackMap locals:
StackMap stack:
iload 2
ifeq 41
38: aload 1
ldc "content-type"
ldc "text/plain"
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
39: aload 1
ldc "access-type"
ldc "directory"
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
40: goto 78
41: StackMap locals:
StackMap stack:
aload 1
ldc "access-type"
ldc "file"
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
42: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromName:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 43: aload 3
ifnonnull 45
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.markSupported:()Z
ifeq 45
44: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromStream:(Ljava/io/InputStream;)Ljava/lang/String;
astore 3
45: StackMap locals: java.lang.String
StackMap stack:
aload 3
ifnull 78
46: aload 1
ldc "content-type"
aload 3
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
end local 3 47: goto 78
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
StackMap stack: java.io.FileNotFoundException
48: pop
49: aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
50: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
pop
51: aload 0
new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
dup
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aconst_null
invokevirtual sun.net.ftp.FtpClient.list:(Ljava/lang/String;)Ljava/io/InputStream;
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
52: aload 1
ldc "content-type"
ldc "text/plain"
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
53: aload 1
ldc "access-type"
ldc "directory"
invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
54: goto 78
StackMap locals:
StackMap stack: java.io.IOException
55: pop
56: new java.io.FileNotFoundException
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 57: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
ifnull 62
58: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.close:()V
59: goto 62
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int java.io.FileNotFoundException
StackMap stack: java.io.IOException
60: astore 4
start local 4 61: aload 3
aload 4
invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
end local 4 62: StackMap locals:
StackMap stack:
aload 3
athrow
end local 3 63: StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
StackMap stack: sun.net.ftp.FtpProtocolException
pop
64: new java.io.FileNotFoundException
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 65: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
ifnull 70
66: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.close:()V
67: goto 70
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int java.io.FileNotFoundException
StackMap stack: java.io.IOException
68: astore 4
start local 4 69: aload 3
aload 4
invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
end local 4 70: StackMap locals:
StackMap stack:
aload 3
athrow
end local 3 71: StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
StackMap stack: sun.net.ftp.FtpProtocolException
astore 3
start local 3 72: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
ifnull 77
73: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.close:()V
74: goto 77
StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int sun.net.ftp.FtpProtocolException
StackMap stack: java.io.IOException
75: astore 4
start local 4 76: aload 3
aload 4
invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
end local 4 77: StackMap locals:
StackMap stack:
new java.io.IOException
dup
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 78: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setProperties:(Lsun/net/www/MessageHeader;)V
79: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 80 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
9 80 1 msgh Lsun/net/www/MessageHeader;
10 80 2 isAdir Z
26 34 3 l J
29 34 5 meteredInput Z
30 34 6 pi Lsun/net/ProgressSource;
36 37 3 e Ljava/lang/Exception;
43 47 3 ftype Ljava/lang/String;
57 63 3 fnfe Ljava/io/FileNotFoundException;
61 62 4 ioe Ljava/io/IOException;
65 71 3 fnfe Ljava/io/FileNotFoundException;
69 70 4 ioe Ljava/io/IOException;
72 78 3 ftpe Lsun/net/ftp/FtpProtocolException;
76 77 4 ioe Ljava/io/IOException;
Exception table:
from to target type
25 34 35 Class java.lang.Exception
10 47 48 Class java.io.FileNotFoundException
49 54 55 Class java.io.IOException
58 59 60 Class java.io.IOException
49 54 63 Class sun.net.ftp.FtpProtocolException
66 67 68 Class java.io.IOException
10 47 71 Class sun.net.ftp.FtpProtocolException
73 74 75 Class java.io.IOException
Exceptions:
throws java.io.IOException
public java.io.OutputStream getOutputStream();
descriptor: ()Ljava/io/OutputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
ifne 2
1: aload 0
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
ifnull 6
3: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
invokevirtual sun.net.www.protocol.http.HttpURLConnection.getOutputStream:()Ljava/io/OutputStream;
astore 1
start local 1 4: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
invokevirtual sun.net.www.protocol.http.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
pop
5: aload 1
areturn
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
ifnull 8
7: new java.io.IOException
dup
ldc "Already opened for input"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
ifnull 10
9: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.decodePath:(Ljava/lang/String;)V
11: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
ifnull 12
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifne 13
12: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "illegal filename for a PUT"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
ifnull 15
14: aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
iconst_1
if_icmpne 18
16: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
pop
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
pop
19: StackMap locals:
StackMap stack:
aload 0
new sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream
dup
aload 0
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
iconst_0
invokevirtual sun.net.ftp.FtpClient.putFileStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/OutputStream;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
20: goto 23
StackMap locals:
StackMap stack: sun.net.ftp.FtpProtocolException
21: astore 1
start local 1 22: new java.io.IOException
dup
aload 1
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 23: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
4 6 1 out Ljava/io/OutputStream;
22 23 1 e Lsun/net/ftp/FtpProtocolException;
Exception table:
from to target type
13 20 21 Class sun.net.ftp.FtpProtocolException
Exceptions:
throws java.io.IOException
java.lang.String guessContentTypeFromFilename(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromName:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 1 1 fname Ljava/lang/String;
MethodParameters:
Name Flags
fname
public java.security.Permission getPermission();
descriptor: ()Ljava/security/Permission;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
ifnonnull 7
1: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
invokevirtual java.net.URL.getPort:()I
istore 1
start local 1 2: iload 1
ifge 3
invokestatic sun.net.ftp.FtpClient.defaultPort:()I
goto 4
StackMap locals: int
StackMap stack:
3: iload 1
StackMap locals:
StackMap stack: int
4: istore 1
5: new java.lang.StringBuilder
dup
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
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;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 6: aload 0
new java.net.SocketPermission
dup
aload 2
ldc "connect"
invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
putfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
end local 2 end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
2 7 1 urlport I
6 7 2 urlhost Ljava/lang/String;
public void setRequestProperty(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.net.www.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
1: ldc "type"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
2: ldc "i"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 5
3: aload 0
iconst_2
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
4: goto 17
StackMap locals:
StackMap stack:
5: ldc "a"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 8
6: aload 0
iconst_1
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
7: goto 17
StackMap locals:
StackMap stack:
8: ldc "d"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 11
9: aload 0
iconst_3
putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
10: goto 17
11: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
12: new java.lang.StringBuilder
dup
ldc "Value of '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc "' request property was '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc "' when it must be either 'i', 'a' or 'd'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 18 1 key Ljava/lang/String;
0 18 2 value Ljava/lang/String;
MethodParameters:
Name Flags
key
value
public java.lang.String getRequestProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.net.www.URLConnection.getRequestProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 7
2: ldc "type"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
3: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
iconst_1
if_icmpne 4
ldc "a"
goto 6
StackMap locals: java.lang.String
StackMap stack:
4: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
iconst_3
if_icmpne 5
ldc "d"
goto 6
StackMap locals:
StackMap stack:
5: ldc "i"
StackMap locals:
StackMap stack: java.lang.String
6: astore 2
7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 8 1 key Ljava/lang/String;
1 8 2 value Ljava/lang/String;
MethodParameters:
Name Flags
key
public void setConnectTimeout(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "timeouts can't be negative"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 4 1 timeout I
MethodParameters:
Name Flags
timeout
public int getConnectTimeout();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
ifge 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
public void setReadTimeout(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "timeouts can't be negative"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
0 4 1 timeout I
MethodParameters:
Name Flags
timeout
public int getReadTimeout();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
ifge 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/net/www/protocol/ftp/FtpURLConnection;
}
SourceFile: "FtpURLConnection.java"
NestMembers:
sun.net.www.protocol.ftp.FtpURLConnection$1 sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream
InnerClasses:
public final Type = java.net.Proxy$Type of java.net.Proxy
sun.net.www.protocol.ftp.FtpURLConnection$1
protected FtpInputStream = sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream of sun.net.www.protocol.ftp.FtpURLConnection
protected FtpOutputStream = sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream of sun.net.www.protocol.ftp.FtpURLConnection