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 161
            aload 0 /* u */
            ifnull 4
         1: .line 162
            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 163
            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 164
            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 167
      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 168
            aload 1 /* s */
            ifnull 8
         6: .line 169
            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 170
            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 172
      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 181
            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 182
            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 188
            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 86
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
         2: .line 89
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
         3: .line 90
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
         4: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
         5: .line 107
            aload 0 /* this */
            iconst_0
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         6: .line 111
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         7: .line 112
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         8: .line 189
            aload 0 /* this */
            aload 2 /* p */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
         9: .line 190
            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 191
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getPort:()I
            putfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
        11: .line 192
            aload 1 /* url */
            invokevirtual java.net.URL.getUserInfo:()Ljava/lang/String;
            astore 3 /* userInfo */
        start local 3 // java.lang.String userInfo
        12: .line 194
            aload 3 /* userInfo */
            ifnull 20
        13: .line 195
            aload 3 /* userInfo */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* delimiter */
        start local 4 // int delimiter
        14: .line 196
            iload 4 /* delimiter */
            iconst_m1
            if_icmpne 18
        15: .line 197
            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 198
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        17: .line 199
            goto 20
        18: .line 200
      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 201
            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 204
      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 207
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 5
         1: .line 208
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 3
         2: .line 209
            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 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 5
         4: .line 212
            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 215
      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=7, locals=7, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 226
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifeq 2
         1: .line 227
            return
         2: .line 230
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // java.net.Proxy p
         3: .line 231
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            ifnonnull 34
         4: .line 236
            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 235
            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 241
            aload 2 /* sel */
            ifnull 46
         7: .line 242
            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 243
            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 244
            goto 32
        10: .line 245
      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 246
            aload 1 /* p */
            ifnull 46
            aload 1 /* p */
            getstatic java.net.Proxy.NO_PROXY:Ljava/net/Proxy;
            if_acmpeq 46
        12: .line 247
            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 248
            goto 46
        14: .line 250
      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 251
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            instanceof java.net.InetSocketAddress
            ifne 18
        16: .line 252
      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 253
            goto 32
        18: .line 256
      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 258
            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 259
            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 260
            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 261
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 24
        23: .line 262
            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 264
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 26
        25: .line 265
            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 267
      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 268
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        28: .line 269
            return
        29: .line 270
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 271
            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 272
            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 244
      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 276
            goto 46
        34: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            astore 1 /* p */
        35: .line 278
            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 279
            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 280
            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 281
            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 282
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 41
        40: .line 283
            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 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 43
        42: .line 286
            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 288
      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 289
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        45: .line 290
            return
        46: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
            ifnonnull 55
        47: .line 295
            aload 0 /* this */
            ldc "anonymous"
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        48: .line 297
            new sun.security.action.GetPropertyAction
            dup
            ldc "java.version"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
        49: .line 296
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* vers */
        start local 2 // java.lang.String vers
        50: .line 298
            aload 0 /* this */
        51: .line 299
            new sun.security.action.GetPropertyAction
            dup
            ldc "ftp.protocol.user"
        52: .line 300
            new java.lang.StringBuilder
            dup
            ldc "Java"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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;
        53: .line 299
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        54: .line 298
            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 // java.lang.String vers
        55: .line 303
      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;
        56: .line 304
            aload 1 /* p */
            ifnull 58
        57: .line 305
            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
        58: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setTimeouts:()V
        59: .line 308
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
            iconst_m1
            if_icmpeq 62
        60: .line 309
            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
        61: .line 310
            goto 73
        62: .line 311
      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
        63: .line 313
            goto 73
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        64: astore 2 /* e */
        start local 2 // java.net.UnknownHostException e
        65: .line 316
            aload 2 /* e */
            athrow
        end local 2 // java.net.UnknownHostException e
        66: .line 317
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
            astore 2 /* fe */
        start local 2 // sun.net.ftp.FtpProtocolException fe
        67: .line 318
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 72
        68: .line 320
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        69: .line 321
            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 /* ioe */
        start local 3 // java.io.IOException ioe
        71: .line 322
            aload 2 /* fe */
            aload 3 /* ioe */
            invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException ioe
        72: .line 325
      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
        73: .line 328
      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 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 /* 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[]
        75: invokevirtual sun.net.ftp.FtpClient.login:(Ljava/lang/String;[C)Lsun/net/ftp/FtpClient;
            pop
        76: .line 329
            goto 80
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        77: pop
        78: .line 330
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        79: .line 332
            new sun.net.ftp.FtpLoginException
            dup
            ldc "Invalid username/password"
            invokespecial sun.net.ftp.FtpLoginException.<init>:(Ljava/lang/String;)V
            athrow
        80: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        81: .line 335
            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   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 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String path
         0: .line 342
            aload 1 /* path */
            ldc ";type="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* i */
        start local 2 // int i
         1: .line 343
            iload 2 /* i */
            iflt 10
         2: .line 344
            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 345
            ldc "i"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 346
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         5: .line 348
      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 349
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 351
      StackMap locals:
      StackMap stack:
            ldc "d"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 352
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         9: .line 354
      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 356
      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 357
            aload 1 /* path */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
        12: .line 358
            aload 1 /* path */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* path */
        13: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ifnull 14
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            ifne 15
        14: .line 361
      StackMap locals:
      StackMap stack:
            ldc "./"
            astore 1 /* path */
        15: .line 363
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 25
        16: .line 364
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* i */
        17: .line 365
            iload 2 /* i */
            ifle 22
        18: .line 366
            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 367
            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 368
            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 369
            goto 27
        22: .line 370
      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 371
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        24: .line 373
            goto 27
        25: .line 374
      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 375
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        27: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 32
        28: .line 378
            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 379
            goto 33
        32: .line 380
      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 382
      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 391
            aload 1 /* path */
            ifnull 1
            aload 1 /* path */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 392
      StackMap locals:
      StackMap stack:
            return
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 5
         3: .line 395
            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 396
            return
         5: .line 399
      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 400
            goto 8
         7: .line 401
      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 400
      StackMap locals:
      StackMap stack:
            aload 2 /* token */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
         9: .line 403
            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 416
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 417
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 420
      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 421
            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 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 6
         5: .line 425
            new java.io.IOException
            dup
            ldc "Already opened for output"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 429
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            areturn
         8: .line 432
      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 434
            iconst_0
            istore 2 /* isAdir */
        start local 2 // boolean isAdir
        10: .line 436
            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 437
            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 438
      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 439
            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 440
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnonnull 17
        15: .line 441
            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 442
            goto 25
        17: .line 443
      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 445
            goto 25
        19: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 22
        20: .line 447
            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 448
            goto 23
        22: .line 449
      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 451
      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 452
            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 458
      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 459
            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 460
            lload 3 /* l */
            lconst_0
            lcmp
            ifle 37
        28: .line 466
            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 467
            aconst_null
            astore 6 /* pi */
        start local 6 // sun.net.ProgressSource pi
        30: .line 469
            iload 5 /* meteredInput */
            ifeq 33
        31: .line 470
            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 471
            aload 6 /* pi */
            invokevirtual sun.net.ProgressSource.beginTracking:()V
        33: .line 474
      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 476
            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 477
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
        37: .line 482
      StackMap locals:
      StackMap stack:
            iload 2 /* isAdir */
            ifeq 41
        38: .line 483
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        39: .line 484
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        40: .line 485
            goto 78
        41: .line 486
      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 487
            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 488
            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 489
            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 491
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* ftype */
            ifnull 78
        46: .line 492
            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 495
            goto 78
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: java.io.FileNotFoundException
        48: pop
        49: .line 497
            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 501
            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 503
            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 504
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        53: .line 505
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        54: .line 506
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        55: pop
        56: .line 507
            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 508
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 62
        58: .line 510
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        59: .line 511
            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 512
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        62: .line 515
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        63: .line 516
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: sun.net.ftp.FtpProtocolException
            pop
        64: .line 517
            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 518
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 70
        66: .line 520
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        67: .line 521
            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 522
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        70: .line 525
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        71: .line 527
      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 528
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 77
        73: .line 530
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        74: .line 531
            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 532
            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 535
      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 537
      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 538
            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 553
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 554
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 557
      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 558
            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 561
            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 562
            aload 1 /* out */
            areturn
        end local 1 // java.io.OutputStream out
         6: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 566
            new java.io.IOException
            dup
            ldc "Already opened for input"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 10
         9: .line 570
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            areturn
        10: .line 573
      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 574
            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.length:()I
            ifne 13
        12: .line 575
      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 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 15
        14: .line 579
            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 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 18
        16: .line 582
            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 583
            goto 19
        18: .line 584
      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 586
      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 587
            goto 23
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        21: astore 1 /* e */
        start local 1 // sun.net.ftp.FtpProtocolException e
        22: .line 588
            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 590
      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 594
            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 604
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
            ifnonnull 7
         1: .line 605
            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 606
            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 607
            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 608
            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 610
      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 625
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* value */
            invokespecial sun.net.www.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 626
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
         2: .line 627
            ldc "i"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 628
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         4: .line 629
            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 630
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 631
            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 632
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
        10: .line 633
            goto 17
        11: .line 634
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        12: .line 635
            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 636
            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 637
            ldc "' when it must be either 'i', 'a' or 'd'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 635
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 634
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 640
      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 654
            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 656
            aload 2 /* value */
            ifnonnull 7
         2: .line 657
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 658
            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 662
      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 667
            iload 1 /* timeout */
            ifge 2
         1: .line 668
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         3: .line 671
            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 675
            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 680
            iload 1 /* timeout */
            ifge 2
         1: .line 681
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         3: .line 684
            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 688
            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