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 // java.net.URL u
         0: .line 163
            aload 0 /* u */
            ifnull 4
         1: .line 164
            aload 0 /* u */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            bipush 10
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmple 4
         2: .line 165
            new java.net.MalformedURLException
            dup
            ldc "Illegal character in URL"
            invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
            astore 1 /* mfue */
        start local 1 // java.lang.Exception mfue
         3: .line 166
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* mfue */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aload 1 /* mfue */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception mfue
         4: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* u */
            invokestatic sun.net.util.IPAddressUtil.checkAuthority:(Ljava/net/URL;)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         5: .line 170
            aload 1 /* s */
            ifnull 8
         6: .line 171
            new java.net.MalformedURLException
            dup
            aload 1 /* s */
            invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
            astore 2 /* mfue */
        start local 2 // java.lang.Exception mfue
         7: .line 172
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* mfue */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aload 2 /* mfue */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception mfue
         8: .line 174
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* u */
            areturn
        end local 1 // java.lang.String s
        end local 0 // java.net.URL u
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.net.URL url
         0: .line 183
            aload 0 /* this */
            aload 1 /* url */
            aconst_null
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
         1: .line 184
            return
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.net.URL url
        start local 2 // java.net.Proxy p
         0: .line 190
            aload 0 /* this */
            aload 1 /* url */
            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: .line 88
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
         2: .line 91
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
         3: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
         4: .line 94
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
         5: .line 109
            aload 0 /* this */
            iconst_0
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         6: .line 113
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         7: .line 114
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         8: .line 191
            aload 0 /* this */
            aload 2 /* p */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
         9: .line 192
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
        10: .line 193
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getPort:()I
            putfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
        11: .line 194
            aload 1 /* url */
            invokevirtual java.net.URL.getUserInfo:()Ljava/lang/String;
            astore 3 /* userInfo */
        start local 3 // java.lang.String userInfo
        12: .line 196
            aload 3 /* userInfo */
            ifnull 20
        13: .line 197
            aload 3 /* userInfo */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* delimiter */
        start local 4 // int delimiter
        14: .line 198
            iload 4 /* delimiter */
            iconst_m1
            if_icmpne 18
        15: .line 199
            aload 0 /* this */
            aload 3 /* userInfo */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        16: .line 200
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        17: .line 201
            goto 20
        18: .line 202
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.URL java.net.Proxy java.lang.String int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* userInfo */
            iconst_0
            iload 4 /* delimiter */
            iinc 4 /* delimiter */ 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: .line 203
            aload 0 /* this */
            aload 3 /* userInfo */
            iload 4 /* delimiter */
            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 // int delimiter
        20: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String userInfo
        end local 2 // java.net.Proxy p
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 209
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 5
         1: .line 210
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 3
         2: .line 211
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.ftp.FtpClient.setConnectTimeout:(I)Lsun/net/ftp/FtpClient;
            pop
         3: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 5
         4: .line 214
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.ftp.FtpClient.setReadTimeout:(I)Lsun/net/ftp/FtpClient;
            pop
         5: .line 217
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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=6, locals=7, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 228
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifeq 2
         1: .line 229
            return
         2: .line 232
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // java.net.Proxy p
         3: .line 233
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            ifnonnull 34
         4: .line 238
            new sun.net.www.protocol.ftp.FtpURLConnection$1
            dup
            aload 0 /* this */
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$1.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;)V
         5: .line 237
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.net.ProxySelector
            astore 2 /* sel */
        start local 2 // java.net.ProxySelector sel
         6: .line 243
            aload 2 /* sel */
            ifnull 46
         7: .line 244
            aload 0 /* this */
            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 /* uri */
        start local 3 // java.net.URI uri
         8: .line 245
            aload 2 /* sel */
            aload 3 /* uri */
            invokevirtual java.net.ProxySelector.select:(Ljava/net/URI;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
         9: .line 246
            goto 32
        10: .line 247
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy java.net.ProxySelector java.net.URI java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.Proxy
            astore 1 /* p */
        11: .line 248
            aload 1 /* p */
            ifnull 46
            aload 1 /* p */
            getstatic java.net.Proxy.NO_PROXY:Ljava/net/Proxy;
            if_acmpeq 46
        12: .line 249
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.SOCKS:Ljava/net/Proxy$Type;
            if_acmpne 14
        13: .line 250
            goto 46
        14: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
            if_acmpne 16
        15: .line 253
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            instanceof java.net.InetSocketAddress
            ifne 18
        16: .line 254
      StackMap locals:
      StackMap stack:
            aload 2 /* sel */
            aload 3 /* uri */
            aload 1 /* p */
            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: .line 255
            goto 32
        18: .line 258
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            astore 5 /* paddr */
        start local 5 // java.net.InetSocketAddress paddr
        19: .line 260
            aload 0 /* this */
            new sun.net.www.protocol.http.HttpURLConnection
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            aload 1 /* p */
            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: .line 261
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
        21: .line 262
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
        22: .line 263
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 24
        23: .line 264
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
        24: .line 266
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 26
        25: .line 267
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
        26: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
        27: .line 270
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        28: .line 271
            return
        29: .line 272
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 273
            aload 2 /* sel */
            aload 3 /* uri */
            aload 5 /* paddr */
            aload 6 /* ioe */
            invokevirtual java.net.ProxySelector.connectFailed:(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V
        31: .line 274
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
        end local 6 // java.io.IOException ioe
        end local 5 // java.net.InetSocketAddress paddr
        32: .line 246
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 4 // java.util.Iterator it
        end local 3 // java.net.URI uri
        end local 2 // java.net.ProxySelector sel
        33: .line 278
            goto 46
        34: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            astore 1 /* p */
        35: .line 280
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
            if_acmpne 46
        36: .line 281
            aload 0 /* this */
            new sun.net.www.protocol.http.HttpURLConnection
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            aload 0 /* this */
            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: .line 282
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
        38: .line 283
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
        39: .line 284
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 41
        40: .line 285
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
        41: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 43
        42: .line 288
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
        43: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
        44: .line 291
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        45: .line 292
            return
        46: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
            ifnonnull 53
        47: .line 297
            aload 0 /* this */
            ldc "anonymous"
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        48: .line 298
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperties:()Ljava/util/Properties;
            astore 2 /* props */
        start local 2 // java.util.Properties props
        49: .line 299
            aload 2 /* props */
            ldc "java.version"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* vers */
        start local 3 // java.lang.String vers
        50: .line 300
            aload 0 /* this */
            aload 2 /* props */
            ldc "ftp.protocol.user"
        51: .line 301
            new java.lang.StringBuilder
            dup
            ldc "Java"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* vers */
            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;
        52: .line 300
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        end local 3 // java.lang.String vers
        end local 2 // java.util.Properties props
        53: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic sun.net.ftp.FtpClient.create:()Lsun/net/ftp/FtpClient;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
        54: .line 305
            aload 1 /* p */
            ifnull 56
        55: .line 306
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 1 /* p */
            invokevirtual sun.net.ftp.FtpClient.setProxy:(Ljava/net/Proxy;)Lsun/net/ftp/FtpClient;
            pop
        56: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setTimeouts:()V
        57: .line 309
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
            iconst_m1
            if_icmpeq 60
        58: .line 310
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
            aload 0 /* this */
            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
        59: .line 311
            goto 71
        60: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            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
        61: .line 314
            goto 71
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        62: astore 2 /* e */
        start local 2 // java.net.UnknownHostException e
        63: .line 317
            aload 2 /* e */
            athrow
        end local 2 // java.net.UnknownHostException e
        64: .line 318
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
            astore 2 /* fe */
        start local 2 // sun.net.ftp.FtpProtocolException fe
        65: .line 319
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 70
        66: .line 321
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        67: .line 322
            goto 70
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy sun.net.ftp.FtpProtocolException
      StackMap stack: java.io.IOException
        68: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        69: .line 323
            aload 2 /* fe */
            aload 3 /* ioe */
            invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException ioe
        70: .line 326
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 2 /* fe */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.net.ftp.FtpProtocolException fe
        71: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
            ifnonnull 72
            aconst_null
            goto 73
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy
      StackMap stack: sun.net.ftp.FtpClient java.lang.String
        72: aload 0 /* this */
            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[]
        73: invokevirtual sun.net.ftp.FtpClient.login:(Ljava/lang/String;[C)Lsun/net/ftp/FtpClient;
            pop
        74: .line 330
            goto 78
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        75: pop
        76: .line 331
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        77: .line 333
            new sun.net.ftp.FtpLoginException
            dup
            ldc "Invalid username/password"
            invokespecial sun.net.ftp.FtpLoginException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        79: .line 336
            return
        end local 1 // java.net.Proxy p
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   80     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            3   80     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;
           49   53     2  props  Ljava/util/Properties;
           50   53     3   vers  Ljava/lang/String;
           63   64     2      e  Ljava/net/UnknownHostException;
           65   71     2     fe  Lsun/net/ftp/FtpProtocolException;
           69   70     3    ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          19    28      29  Class java.io.IOException
          53    61      62  Class java.net.UnknownHostException
          53    61      64  Class sun.net.ftp.FtpProtocolException
          66    67      68  Class java.io.IOException
          71    74      75  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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String path
         0: .line 343
            aload 1 /* path */
            ldc ";type="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* i */
        start local 2 // int i
         1: .line 344
            iload 2 /* i */
            iflt 10
         2: .line 345
            aload 1 /* path */
            iload 2 /* i */
            bipush 6
            iadd
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* s1 */
        start local 3 // java.lang.String s1
         3: .line 346
            ldc "i"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 347
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         5: .line 349
      StackMap locals: int java.lang.String
      StackMap stack:
            ldc "a"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 350
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 352
      StackMap locals:
      StackMap stack:
            ldc "d"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 353
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         9: .line 355
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* path */
        end local 3 // java.lang.String s1
        10: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ifnull 13
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 13
        11: .line 358
            aload 1 /* path */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
        12: .line 359
            aload 1 /* path */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* path */
        13: .line 361
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ifnull 14
            aload 1 /* path */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        14: .line 362
      StackMap locals:
      StackMap stack:
            ldc "./"
            astore 1 /* path */
        15: .line 364
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 25
        16: .line 365
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* i */
        17: .line 366
            iload 2 /* i */
            ifle 22
        18: .line 367
            aload 0 /* this */
            aload 1 /* path */
            iload 2 /* i */
            iconst_1
            iadd
            aload 1 /* path */
            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: .line 368
            aload 0 /* this */
            aload 0 /* this */
            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: .line 369
            aload 0 /* this */
            aload 1 /* path */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        21: .line 370
            goto 27
        22: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        23: .line 372
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        24: .line 374
            goto 27
        25: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            iconst_0
            aload 1 /* path */
            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: .line 376
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        27: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 32
        28: .line 379
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 29
            aload 0 /* this */
            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: .line 380
            goto 33
        32: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
        33: .line 383
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // java.lang.String path
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String path
         0: .line 392
            aload 1 /* path */
            ifnull 1
            aload 1 /* path */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 393
      StackMap locals:
      StackMap stack:
            return
         2: .line 395
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 5
         3: .line 396
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 1 /* path */
            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: .line 397
            return
         5: .line 400
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* path */
            ldc "/"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* token */
        start local 2 // java.util.StringTokenizer token
         6: .line 401
            goto 8
         7: .line 402
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 2 /* token */
            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: .line 401
      StackMap locals:
      StackMap stack:
            aload 2 /* token */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
         9: .line 404
            return
        end local 2 // java.util.StringTokenizer token
        end local 1 // java.lang.String path
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 417
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 418
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            ifnull 4
         3: .line 422
            aload 0 /* this */
            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: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 6
         5: .line 426
            new java.io.IOException
            dup
            ldc "Already opened for output"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 430
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            areturn
         8: .line 433
      StackMap locals:
      StackMap stack:
            new sun.net.www.MessageHeader
            dup
            invokespecial sun.net.www.MessageHeader.<init>:()V
            astore 1 /* msgh */
        start local 1 // sun.net.www.MessageHeader msgh
         9: .line 435
            iconst_0
            istore 2 /* isAdir */
        start local 2 // boolean isAdir
        10: .line 437
            aload 0 /* this */
            aload 0 /* this */
            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: .line 438
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_3
            if_icmpne 19
        12: .line 439
      StackMap locals: sun.net.www.MessageHeader int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        13: .line 440
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        14: .line 441
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnonnull 17
        15: .line 442
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            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: .line 443
            goto 25
        17: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            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: .line 446
            goto 25
        19: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 22
        20: .line 448
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        21: .line 449
            goto 23
        22: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
            pop
        23: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        24: .line 453
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            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: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.getLastTransferSize:()J
            lstore 3 /* l */
        start local 3 // long l
        26: .line 460
            aload 1 /* msgh */
            ldc "content-length"
            lload 3 /* l */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 461
            lload 3 /* l */
            lconst_0
            lcmp
            ifle 37
        28: .line 467
            invokestatic sun.net.ProgressMonitor.getDefault:()Lsun/net/ProgressMonitor;
            aload 0 /* this */
            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 /* meteredInput */
        start local 5 // boolean meteredInput
        29: .line 468
            aconst_null
            astore 6 /* pi */
        start local 6 // sun.net.ProgressSource pi
        30: .line 470
            iload 5 /* meteredInput */
            ifeq 33
        31: .line 471
            new sun.net.ProgressSource
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            ldc "GET"
            lload 3 /* l */
            invokespecial sun.net.ProgressSource.<init>:(Ljava/net/URL;Ljava/lang/String;J)V
            astore 6 /* pi */
        32: .line 472
            aload 6 /* pi */
            invokevirtual sun.net.ProgressSource.beginTracking:()V
        33: .line 475
      StackMap locals: long int sun.net.ProgressSource
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.MeteredStream
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            aload 6 /* pi */
            lload 3 /* l */
            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 // sun.net.ProgressSource pi
        end local 5 // boolean meteredInput
        end local 3 // long l
        34: .line 477
            goto 37
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: java.lang.Exception
        35: astore 3 /* e */
        start local 3 // java.lang.Exception e
        36: .line 478
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
        37: .line 483
      StackMap locals:
      StackMap stack:
            iload 2 /* isAdir */
            ifeq 41
        38: .line 484
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        39: .line 485
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        40: .line 486
            goto 78
        41: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* msgh */
            ldc "access-type"
            ldc "file"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        42: .line 488
            aload 0 /* this */
            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 /* ftype */
        start local 3 // java.lang.String ftype
        43: .line 489
            aload 3 /* ftype */
            ifnonnull 45
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.markSupported:()Z
            ifeq 45
        44: .line 490
            aload 0 /* this */
            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 /* ftype */
        45: .line 492
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* ftype */
            ifnull 78
        46: .line 493
            aload 1 /* msgh */
            ldc "content-type"
            aload 3 /* ftype */
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        end local 3 // java.lang.String ftype
        47: .line 496
            goto 78
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: java.io.FileNotFoundException
        48: pop
        49: .line 498
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        50: .line 502
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        51: .line 504
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            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: .line 505
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        53: .line 506
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        54: .line 507
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        55: pop
        56: .line 508
            new java.io.FileNotFoundException
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            astore 3 /* fnfe */
        start local 3 // java.io.FileNotFoundException fnfe
        57: .line 509
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 62
        58: .line 511
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        59: .line 512
            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 /* ioe */
        start local 4 // java.io.IOException ioe
        61: .line 513
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        62: .line 516
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        63: .line 517
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: sun.net.ftp.FtpProtocolException
            pop
        64: .line 518
            new java.io.FileNotFoundException
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            astore 3 /* fnfe */
        start local 3 // java.io.FileNotFoundException fnfe
        65: .line 519
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 70
        66: .line 521
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        67: .line 522
            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 /* ioe */
        start local 4 // java.io.IOException ioe
        69: .line 523
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        70: .line 526
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        71: .line 528
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: sun.net.ftp.FtpProtocolException
            astore 3 /* ftpe */
        start local 3 // sun.net.ftp.FtpProtocolException ftpe
        72: .line 529
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 77
        73: .line 531
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        74: .line 532
            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 /* ioe */
        start local 4 // java.io.IOException ioe
        76: .line 533
            aload 3 /* ftpe */
            aload 4 /* ioe */
            invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        77: .line 536
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 3 /* ftpe */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // sun.net.ftp.FtpProtocolException ftpe
        78: .line 538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msgh */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setProperties:(Lsun/net/www/MessageHeader;)V
        79: .line 539
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            areturn
        end local 2 // boolean isAdir
        end local 1 // sun.net.www.MessageHeader msgh
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 554
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 555
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            ifnull 6
         3: .line 559
            aload 0 /* this */
            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 /* out */
        start local 1 // java.io.OutputStream out
         4: .line 562
            aload 0 /* this */
            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: .line 563
            aload 1 /* out */
            areturn
        end local 1 // java.io.OutputStream out
         6: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 567
            new java.io.IOException
            dup
            ldc "Already opened for input"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 10
         9: .line 571
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            areturn
        10: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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: .line 575
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 576
      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: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 15
        14: .line 580
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        15: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 18
        16: .line 583
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        17: .line 584
            goto 19
        18: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
            pop
        19: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            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: .line 588
            goto 23
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        21: astore 1 /* e */
        start local 1 // sun.net.ftp.FtpProtocolException e
        22: .line 589
            new java.io.IOException
            dup
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // sun.net.ftp.FtpProtocolException e
        23: .line 591
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            areturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String fname
         0: .line 595
            aload 1 /* fname */
            invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String fname
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 605
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
            ifnonnull 7
         1: .line 606
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            istore 1 /* urlport */
        start local 1 // int urlport
         2: .line 607
            iload 1 /* urlport */
            ifge 3
            invokestatic sun.net.ftp.FtpClient.defaultPort:()I
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iload 1 /* urlport */
      StackMap locals:
      StackMap stack: int
         4: istore 1 /* urlport */
         5: .line 608
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* urlport */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* urlhost */
        start local 2 // java.lang.String urlhost
         6: .line 609
            aload 0 /* this */
            new java.net.SocketPermission
            dup
            aload 2 /* urlhost */
            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 // java.lang.String urlhost
        end local 1 // int urlport
         7: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
            areturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 626
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* value */
            invokespecial sun.net.www.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 627
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
         2: .line 628
            ldc "i"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 629
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         4: .line 630
            goto 17
      StackMap locals:
      StackMap stack:
         5: ldc "a"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 631
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 632
            goto 17
      StackMap locals:
      StackMap stack:
         8: ldc "d"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 11
         9: .line 633
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
        10: .line 634
            goto 17
        11: .line 635
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        12: .line 636
            new java.lang.StringBuilder
            dup
            ldc "Value of '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 637
            ldc "' request property was '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 638
            ldc "' when it must be either 'i', 'a' or 'd'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 636
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 635
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 641
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String key
         0: .line 655
            aload 0 /* this */
            aload 1 /* key */
            invokespecial sun.net.www.URLConnection.getRequestProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         1: .line 657
            aload 2 /* value */
            ifnonnull 7
         2: .line 658
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 659
            aload 0 /* this */
            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 /* this */
            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 /* value */
         7: .line 663
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // int timeout
         0: .line 668
            iload 1 /* timeout */
            ifge 2
         1: .line 669
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         3: .line 672
            return
        end local 1 // int timeout
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 676
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // int timeout
         0: .line 681
            iload 1 /* timeout */
            ifge 2
         1: .line 682
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         3: .line 685
            return
        end local 1 // int timeout
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 689
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      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