public class org.jruby.ext.socket.RubyTCPSocket extends org.jruby.ext.socket.RubyIPSocket
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.socket.RubyTCPSocket
  super_class: org.jruby.ext.socket.RubyIPSocket
{
  private static org.jruby.runtime.ObjectAllocator TCPSOCKET_ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 71
            new org.jruby.ext.socket.RubyTCPSocket$1
            dup
            invokespecial org.jruby.ext.socket.RubyTCPSocket$1.<init>:()V
            putstatic org.jruby.ext.socket.RubyTCPSocket.TCPSOCKET_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         1: .line 75
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void createTCPSocket(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 64
            aload 0 /* runtime */
            ldc "TCPSocket"
            aload 0 /* runtime */
            ldc "IPSocket"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            getstatic org.jruby.ext.socket.RubyTCPSocket.TCPSOCKET_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 1 /* rb_cTCPSocket */
        start local 1 // org.jruby.RubyClass rb_cTCPSocket
         1: .line 66
            aload 1 /* rb_cTCPSocket */
            ldc Lorg/jruby/ext/socket/RubyTCPSocket;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         2: .line 68
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "TCPsocket"
            aload 1 /* rb_cTCPSocket */
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         3: .line 69
            return
        end local 1 // org.jruby.RubyClass rb_cTCPSocket
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0        runtime  Lorg/jruby/Ruby;
            1    4     1  rb_cTCPSocket  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyTCPSocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass type
         0: .line 78
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* type */
            invokespecial org.jruby.ext.socket.RubyIPSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 79
            return
        end local 2 // org.jruby.RubyClass type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyTCPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubyTCPSocket;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     type  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      type     

  private java.nio.channels.SocketChannel attemptConnect(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, java.lang.String, int, java.lang.String, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;ILjava/lang/String;I)Ljava/nio/channels/SocketChannel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=7
        start local 0 // org.jruby.ext.socket.RubyTCPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject host
        start local 3 // java.lang.String localHost
        start local 4 // int localPort
        start local 5 // java.lang.String remoteHost
        start local 6 // int remotePort
         0: .line 84
            aload 5 /* remoteHost */
            invokestatic java.net.InetAddress.getAllByName:(Ljava/lang/String;)[Ljava/net/InetAddress;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 22
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int top int int java.net.InetAddress[]
      StackMap stack:
         1: aload 10
            iload 8
            aaload
            astore 7 /* address */
        start local 7 // java.net.InetAddress address
         2: .line 87
            invokestatic java.nio.channels.SocketChannel.open:()Ljava/nio/channels/SocketChannel;
            astore 11 /* channel */
        start local 11 // java.nio.channels.SocketChannel channel
         3: .line 88
            aload 11 /* channel */
            invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
            astore 12 /* socket */
        start local 12 // java.net.Socket socket
         4: .line 90
            aload 0 /* this */
            aconst_null
            putfield org.jruby.ext.socket.RubyTCPSocket.openFile:Lorg/jruby/util/io/OpenFile;
         5: .line 92
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 11 /* channel */
            invokestatic org.jruby.ext.socket.RubyTCPSocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.ext.socket.RubyTCPSocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
         6: .line 95
            aload 11 /* channel */
            iconst_0
            invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         7: .line 97
            aload 3 /* localHost */
            ifnull 10
         8: .line 98
            aload 12 /* socket */
            iconst_1
            invokevirtual java.net.Socket.setReuseAddress:(Z)V
         9: .line 99
            aload 12 /* socket */
            new java.net.InetSocketAddress
            dup
            aload 3 /* localHost */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 4 /* localPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual java.net.Socket.bind:(Ljava/net/SocketAddress;)V
        10: .line 102
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int java.net.InetAddress int int java.net.InetAddress[] java.nio.channels.SocketChannel java.net.Socket
      StackMap stack:
            aload 11 /* channel */
            new java.net.InetSocketAddress
            dup
            aload 7 /* address */
            iload 6 /* remotePort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual java.nio.channels.SocketChannel.connect:(Ljava/net/SocketAddress;)Z
            pop
        11: .line 105
            goto 13
        12: .line 106
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
        13: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 11 /* channel */
            aload 0 /* this */
            bipush 8
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/RubyIO;I)Z
            ifeq 12
        14: .line 110
            goto 16
        15: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
        16: .line 110
      StackMap locals:
      StackMap stack:
            aload 11 /* channel */
            invokevirtual java.nio.channels.SocketChannel.finishConnect:()Z
            ifeq 15
        17: .line 114
            aload 11 /* channel */
            iconst_1
            invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        18: .line 116
            aload 11 /* channel */
        19: areturn
        20: .line 117
      StackMap locals:
      StackMap stack: java.net.ConnectException
            pop
        end local 12 // java.net.Socket socket
        end local 11 // java.nio.channels.SocketChannel channel
        end local 7 // java.net.InetAddress address
        21: .line 84
            iinc 8 1
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int top int int java.net.InetAddress[]
      StackMap stack:
        22: iload 8
            iload 9
            if_icmplt 1
        23: .line 123
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "connect(2) for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " port "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* remotePort */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // int remotePort
        end local 5 // java.lang.String remoteHost
        end local 4 // int localPort
        end local 3 // java.lang.String localHost
        end local 2 // org.jruby.runtime.builtin.IRubyObject host
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyTCPSocket this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/jruby/ext/socket/RubyTCPSocket;
            0   24     1     context  Lorg/jruby/runtime/ThreadContext;
            0   24     2        host  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     3   localHost  Ljava/lang/String;
            0   24     4   localPort  I
            0   24     5  remoteHost  Ljava/lang/String;
            0   24     6  remotePort  I
            2   21     7     address  Ljava/net/InetAddress;
            3   21    11     channel  Ljava/nio/channels/SocketChannel;
            4   21    12      socket  Ljava/net/Socket;
      Exception table:
        from    to  target  type
          10    19      20  Class java.net.ConnectException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      context     
      host        
      localHost   
      localPort   
      remoteHost  
      remotePort  

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=14, args_size=3
        start local 0 // org.jruby.ext.socket.RubyTCPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 128
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 129
            aload 2 /* args */
            iconst_0
            aaload
            astore 4 /* host */
        start local 4 // org.jruby.runtime.builtin.IRubyObject host
         2: .line 130
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* port */
        start local 5 // org.jruby.runtime.builtin.IRubyObject port
         3: .line 132
            aload 4 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
            ldc "localhost"
            goto 5
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         4: aload 4 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 6 /* remoteHost */
        start local 6 // java.lang.String remoteHost
         6: .line 133
            aload 1 /* context */
            aload 5 /* port */
            invokestatic org.jruby.ext.socket.SocketUtils.getPortFrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 7 /* remotePort */
        start local 7 // int remotePort
         7: .line 135
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmplt 8
            aload 2 /* args */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 8
            aload 2 /* args */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            goto 9
      StackMap locals: java.lang.String int
      StackMap stack:
         8: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         9: astore 8 /* localHost */
        start local 8 // java.lang.String localHost
        10: .line 136
            aload 2 /* args */
            arraylength
            iconst_4
            if_icmpne 11
            aload 2 /* args */
            iconst_3
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 11
            aload 1 /* context */
            aload 2 /* args */
            iconst_3
            aaload
            invokestatic org.jruby.ext.socket.SocketUtils.getPortFrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            goto 12
      StackMap locals: java.lang.String
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 9 /* localPort */
        start local 9 // int localPort
        13: .line 139
            iconst_0
            istore 10 /* success */
        start local 10 // boolean success
        14: .line 140
            aconst_null
            astore 11 /* channel */
        start local 11 // java.nio.channels.SocketChannel channel
        15: .line 144
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* host */
            aload 8 /* localHost */
            iload 9 /* localPort */
            aload 6 /* remoteHost */
            iload 7 /* remotePort */
            invokevirtual org.jruby.ext.socket.RubyTCPSocket.attemptConnect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;ILjava/lang/String;I)Ljava/nio/channels/SocketChannel;
            astore 11 /* channel */
        16: .line 145
            iconst_1
            istore 10 /* success */
        17: .line 146
            goto 38
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int int java.nio.channels.SocketChannel
      StackMap stack: java.net.BindException
        18: astore 12 /* e */
        start local 12 // java.net.BindException e
        19: .line 147
            aload 3 /* runtime */
            aload 12 /* e */
            new java.lang.StringBuilder
            dup
            ldc " to: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* remoteHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 7 /* remotePort */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEADDRFromBindException:(Ljava/net/BindException;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 12 // java.net.BindException e
        20: .line 148
      StackMap locals:
      StackMap stack: java.net.NoRouteToHostException
            pop
        21: .line 149
            aload 3 /* runtime */
            ldc "SocketChannel.connect"
            invokevirtual org.jruby.Ruby.newErrnoEHOSTUNREACHError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 150
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
        23: .line 151
            aload 3 /* runtime */
            ldc "initialize: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        24: .line 153
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedChannelException
            pop
        25: .line 154
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        26: .line 155
      StackMap locals:
      StackMap stack: java.net.BindException
            astore 12 /* e */
        start local 12 // java.net.BindException e
        27: .line 156
            aload 3 /* runtime */
            aload 12 /* e */
            new java.lang.StringBuilder
            dup
            ldc " on: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* localHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 9 /* localPort */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEADDRFromBindException:(Ljava/net/BindException;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 12 // java.net.BindException e
        28: .line 157
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 12 /* e */
        start local 12 // java.io.IOException e
        29: .line 158
            aload 3 /* runtime */
            aload 12 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 12 // java.io.IOException e
        30: .line 159
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 12 /* e */
        start local 12 // java.lang.IllegalArgumentException e
        31: .line 162
            aload 3 /* runtime */
            aload 12 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            aload 12 /* e */
            invokestatic org.jruby.ext.socket.RubyTCPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 12 // java.lang.IllegalArgumentException e
        32: .line 163
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        33: .line 164
            iload 10 /* success */
            ifne 37
            aload 11 /* channel */
            ifnull 37
        34: aload 11 /* channel */
            invokevirtual java.nio.channels.SocketChannel.close:()V
        35: goto 37
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int int java.nio.channels.SocketChannel top java.lang.Throwable
      StackMap stack: java.io.IOException
        36: pop
        37: .line 165
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        38: .line 164
      StackMap locals: org.jruby.ext.socket.RubyTCPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.String int java.lang.String int int java.nio.channels.SocketChannel
      StackMap stack:
            iload 10 /* success */
            ifne 42
            aload 11 /* channel */
            ifnull 42
        39: aload 11 /* channel */
            invokevirtual java.nio.channels.SocketChannel.close:()V
        40: goto 42
      StackMap locals:
      StackMap stack: java.io.IOException
        41: pop
        42: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
        43: .line 167
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 11 // java.nio.channels.SocketChannel channel
        end local 10 // boolean success
        end local 9 // int localPort
        end local 8 // java.lang.String localHost
        end local 7 // int remotePort
        end local 6 // java.lang.String remoteHost
        end local 5 // org.jruby.runtime.builtin.IRubyObject port
        end local 4 // org.jruby.runtime.builtin.IRubyObject host
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyTCPSocket this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0        this  Lorg/jruby/ext/socket/RubyTCPSocket;
            0   44     1     context  Lorg/jruby/runtime/ThreadContext;
            0   44     2        args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   44     3     runtime  Lorg/jruby/Ruby;
            2   44     4        host  Lorg/jruby/runtime/builtin/IRubyObject;
            3   44     5        port  Lorg/jruby/runtime/builtin/IRubyObject;
            6   44     6  remoteHost  Ljava/lang/String;
            7   44     7  remotePort  I
           10   44     8   localHost  Ljava/lang/String;
           13   44     9   localPort  I
           14   44    10     success  Z
           15   44    11     channel  Ljava/nio/channels/SocketChannel;
           19   20    12           e  Ljava/net/BindException;
           27   28    12           e  Ljava/net/BindException;
           29   30    12           e  Ljava/io/IOException;
           31   32    12           e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          15    17      18  Class java.net.BindException
          15    17      20  Class java.net.NoRouteToHostException
          15    17      22  Class java.net.UnknownHostException
          15    24      24  Class java.nio.channels.ClosedChannelException
          15    24      26  Class java.net.BindException
          15    24      28  Class java.io.IOException
          15    24      30  Class java.lang.IllegalArgumentException
          15    32      32  any
          34    35      36  Class java.io.IOException
          39    40      41  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 2, optional = 2, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject gethostbyname(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject hostname
         0: .line 172
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 174
            aload 2 /* hostname */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            astore 8 /* hostString */
        start local 8 // java.lang.String hostString
         2: .line 177
            aload 8 /* hostString */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 9 /* addr */
        start local 9 // java.net.InetAddress addr
         3: .line 179
            aload 3 /* runtime */
            aload 0 /* context */
            aload 1 /* recv */
            invokestatic org.jruby.ext.socket.RubyTCPSocket.do_not_reverse_lookup:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 4
            aload 9 /* addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            goto 5
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top java.lang.String java.net.InetAddress
      StackMap stack: org.jruby.Ruby
         4: aload 9 /* addr */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top java.lang.String java.net.InetAddress
      StackMap stack: org.jruby.Ruby java.lang.String
         5: invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            astore 4 /* ret0 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject ret0
         6: .line 180
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newArray:()Lorg/jruby/RubyArray;
            astore 5 /* ret1 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject ret1
         7: .line 182
            aload 9 /* addr */
            instanceof java.net.Inet4Address
            ifeq 10
         8: .line 183
            aload 3 /* runtime */
            getstatic jnr.constants.platform.AddressFamily.AF_INET:Ljnr/constants/platform/AddressFamily;
            invokevirtual org.jruby.Ruby.newFixnum:(Ljnr/constants/Constant;)Lorg/jruby/RubyFixnum;
            astore 6 /* ret2 */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret2
         9: .line 184
            goto 11
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret2
        10: .line 185
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top java.lang.String java.net.InetAddress
      StackMap stack:
            aload 3 /* runtime */
            getstatic jnr.constants.platform.AddressFamily.AF_INET6:Ljnr/constants/platform/AddressFamily;
            invokevirtual org.jruby.Ruby.newFixnum:(Ljnr/constants/Constant;)Lorg/jruby/RubyFixnum;
            astore 6 /* ret2 */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret2
        11: .line 188
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top java.lang.String java.net.InetAddress
      StackMap stack:
            aload 3 /* runtime */
            aload 9 /* addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            astore 7 /* ret3 */
        start local 7 // org.jruby.runtime.builtin.IRubyObject ret3
        12: .line 190
            aload 3 /* runtime */
            aload 4 /* ret0 */
            aload 5 /* ret1 */
            aload 6 /* ret2 */
            aload 7 /* ret3 */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
        13: areturn
        end local 9 // java.net.InetAddress addr
        end local 7 // org.jruby.runtime.builtin.IRubyObject ret3
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret2
        end local 5 // org.jruby.runtime.builtin.IRubyObject ret1
        end local 4 // org.jruby.runtime.builtin.IRubyObject ret0
        14: .line 192
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top java.lang.String
      StackMap stack: java.net.UnknownHostException
            pop
        15: .line 193
            aload 3 /* runtime */
            ldc "gethostbyname: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.String hostString
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject hostname
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0     context  Lorg/jruby/runtime/ThreadContext;
            0   16     1        recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     2    hostname  Lorg/jruby/runtime/builtin/IRubyObject;
            1   16     3     runtime  Lorg/jruby/Ruby;
            6   14     4        ret0  Lorg/jruby/runtime/builtin/IRubyObject;
            7   14     5        ret1  Lorg/jruby/runtime/builtin/IRubyObject;
            9   10     6        ret2  Lorg/jruby/runtime/builtin/IRubyObject;
           11   14     6        ret2  Lorg/jruby/runtime/builtin/IRubyObject;
           12   14     7        ret3  Lorg/jruby/runtime/builtin/IRubyObject;
            2   16     8  hostString  Ljava/lang/String;
            3   14     9        addr  Ljava/net/InetAddress;
      Exception table:
        from    to  target  type
           2    13      14  Class java.net.UnknownHostException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      hostname  

  public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 199
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            aload 1 /* args */
            aload 2 /* block */
            invokestatic org.jruby.ext.socket.RubyTCPSocket.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1   args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      recv   
      args   
      block  

  public static org.jruby.runtime.builtin.IRubyObject gethostbyname(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject hostname
         0: .line 204
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            aload 1 /* hostname */
            invokestatic org.jruby.ext.socket.RubyTCPSocket.gethostbyname:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject hostname
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  hostname  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      recv      
      hostname  
}
SourceFile: "RubyTCPSocket.java"
NestMembers:
  org.jruby.ext.socket.RubyTCPSocket$1
InnerClasses:
  org.jruby.ext.socket.RubyTCPSocket$1