public class sun.net.www.protocol.file.Handler extends java.net.URLStreamHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.net.www.protocol.file.Handler
  super_class: java.net.URLStreamHandler
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.www.protocol.file.Handler this
         0: .line 43
            aload 0 /* this */
            invokespecial java.net.URLStreamHandler.<init>:()V
            return
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/www/protocol/file/Handler;

  private java.lang.String getHost(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL url
         0: .line 46
            aload 1 /* url */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 2 /* host */
        start local 2 // java.lang.String host
         1: .line 47
            aload 2 /* host */
            ifnonnull 3
         2: .line 48
            ldc ""
            astore 2 /* host */
         3: .line 49
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* host */
            areturn
        end local 2 // java.lang.String host
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/net/www/protocol/file/Handler;
            0    4     1   url  Ljava/net/URL;
            1    4     2  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      url   

  protected void parseURL(java.net.URL, java.lang.String, int, int);
    descriptor: (Ljava/net/URL;Ljava/lang/String;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL u
        start local 2 // java.lang.String spec
        start local 3 // int start
        start local 4 // int limit
         0: .line 67
            aload 0 /* this */
            aload 1 /* u */
            aload 2 /* spec */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            iload 3 /* start */
            iload 4 /* limit */
            invokespecial java.net.URLStreamHandler.parseURL:(Ljava/net/URL;Ljava/lang/String;II)V
         1: .line 68
            return
        end local 4 // int limit
        end local 3 // int start
        end local 2 // java.lang.String spec
        end local 1 // java.net.URL u
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/net/www/protocol/file/Handler;
            0    2     1      u  Ljava/net/URL;
            0    2     2   spec  Ljava/lang/String;
            0    2     3  start  I
            0    2     4  limit  I
    MethodParameters:
       Name  Flags
      u      
      spec   
      start  
      limit  

  public synchronized java.net.URLConnection openConnection(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/net/URLConnection;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL u
         0: .line 72
            aload 0 /* this */
            aload 1 /* u */
            aconst_null
            invokevirtual sun.net.www.protocol.file.Handler.openConnection:(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;
            areturn
        end local 1 // java.net.URL u
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/www/protocol/file/Handler;
            0    1     1     u  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      u     

  public synchronized java.net.URLConnection openConnection(java.net.URL, java.net.Proxy);
    descriptor: (Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL u
        start local 2 // java.net.Proxy p
         0: .line 77
            aload 1 /* u */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 3 /* host */
        start local 3 // java.lang.String host
         1: .line 78
            aload 3 /* host */
            ifnull 3
            aload 3 /* host */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 3
            aload 3 /* host */
            ldc "~"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 79
            aload 3 /* host */
            ldc "localhost"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 80
      StackMap locals: java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* u */
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* file */
        start local 4 // java.io.File file
         4: .line 81
            aload 0 /* this */
            aload 1 /* u */
            aload 4 /* file */
            invokevirtual sun.net.www.protocol.file.Handler.createFileURLConnection:(Ljava/net/URL;Ljava/io/File;)Ljava/net/URLConnection;
            areturn
        end local 4 // java.io.File file
         5: .line 91
      StackMap locals:
      StackMap stack:
            new java.net.URL
            dup
            ldc "ftp"
            aload 3 /* host */
            new java.lang.StringBuilder
            dup
            aload 1 /* u */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 92
            aload 1 /* u */
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            ifnonnull 7
            ldc ""
            goto 8
      StackMap locals: sun.net.www.protocol.file.Handler java.net.URL java.net.Proxy java.lang.String
      StackMap stack: new 5 new 5 java.lang.String java.lang.String java.lang.StringBuilder
         7: new java.lang.StringBuilder
            dup
            ldc "#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* u */
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: sun.net.www.protocol.file.Handler java.net.URL java.net.Proxy java.lang.String
      StackMap stack: new 5 new 5 java.lang.String java.lang.String java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 91
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* ru */
        start local 5 // java.net.URL ru
        10: .line 93
            aload 2 /* p */
            ifnull 13
        11: .line 94
            aload 5 /* ru */
            aload 2 /* p */
            invokevirtual java.net.URL.openConnection:(Ljava/net/Proxy;)Ljava/net/URLConnection;
            astore 4 /* uc */
        start local 4 // java.net.URLConnection uc
        12: .line 95
            goto 17
        end local 4 // java.net.URLConnection uc
        13: .line 96
      StackMap locals: sun.net.www.protocol.file.Handler java.net.URL java.net.Proxy java.lang.String top java.net.URL
      StackMap stack:
            aload 5 /* ru */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 4 /* uc */
        start local 4 // java.net.URLConnection uc
        14: .line 98
            goto 17
        end local 5 // java.net.URL ru
        end local 4 // java.net.URLConnection uc
      StackMap locals: sun.net.www.protocol.file.Handler java.net.URL java.net.Proxy java.lang.String
      StackMap stack: java.io.IOException
        15: pop
        16: .line 99
            aconst_null
            astore 4 /* uc */
        start local 4 // java.net.URLConnection uc
        17: .line 101
      StackMap locals: java.net.URLConnection
      StackMap stack:
            aload 4 /* uc */
            ifnonnull 21
        18: .line 102
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to connect to: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 103
            aload 1 /* u */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 102
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 105
      StackMap locals:
      StackMap stack:
            aload 4 /* uc */
            areturn
        end local 4 // java.net.URLConnection uc
        end local 3 // java.lang.String host
        end local 2 // java.net.Proxy p
        end local 1 // java.net.URL u
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lsun/net/www/protocol/file/Handler;
            0   22     1     u  Ljava/net/URL;
            0   22     2     p  Ljava/net/Proxy;
            1   22     3  host  Ljava/lang/String;
            4    5     4  file  Ljava/io/File;
           12   13     4    uc  Ljava/net/URLConnection;
           14   15     4    uc  Ljava/net/URLConnection;
           17   22     4    uc  Ljava/net/URLConnection;
           10   15     5    ru  Ljava/net/URL;
      Exception table:
        from    to  target  type
           5    14      15  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      u     
      p     

  protected java.net.URLConnection createFileURLConnection(java.net.URL, java.io.File);
    descriptor: (Ljava/net/URL;Ljava/io/File;)Ljava/net/URLConnection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL u
        start local 2 // java.io.File file
         0: .line 112
            new sun.net.www.protocol.file.FileURLConnection
            dup
            aload 1 /* u */
            aload 2 /* file */
            invokespecial sun.net.www.protocol.file.FileURLConnection.<init>:(Ljava/net/URL;Ljava/io/File;)V
            areturn
        end local 2 // java.io.File file
        end local 1 // java.net.URL u
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/www/protocol/file/Handler;
            0    1     1     u  Ljava/net/URL;
            0    1     2  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      u     
      file  

  protected boolean hostsEqual(java.net.URL, java.net.URL);
    descriptor: (Ljava/net/URL;Ljava/net/URL;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.net.www.protocol.file.Handler this
        start local 1 // java.net.URL u1
        start local 2 // java.net.URL u2
         0: .line 128
            aload 1 /* u1 */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 3 /* s1 */
        start local 3 // java.lang.String s1
         1: .line 129
            aload 2 /* u2 */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 4 /* s2 */
        start local 4 // java.lang.String s2
         2: .line 130
            ldc "localhost"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
            aload 4 /* s2 */
            ifnull 3
            aload 4 /* s2 */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 131
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         4: .line 132
      StackMap locals:
      StackMap stack:
            ldc "localhost"
            aload 4 /* s2 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
            aload 3 /* s1 */
            ifnull 5
            aload 3 /* s1 */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         5: .line 133
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* u1 */
            aload 2 /* u2 */
            invokespecial java.net.URLStreamHandler.hostsEqual:(Ljava/net/URL;Ljava/net/URL;)Z
            ireturn
        end local 4 // java.lang.String s2
        end local 3 // java.lang.String s1
        end local 2 // java.net.URL u2
        end local 1 // java.net.URL u1
        end local 0 // sun.net.www.protocol.file.Handler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/net/www/protocol/file/Handler;
            0    7     1    u1  Ljava/net/URL;
            0    7     2    u2  Ljava/net/URL;
            1    7     3    s1  Ljava/lang/String;
            2    7     4    s2  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      u1    
      u2    
}
SourceFile: "Handler.java"