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

  private static final java.util.regex.Pattern ALREADY_BOUND_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern ADDR_NOT_AVAIL_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int MSG_OOB;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MSG_PEEK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int MSG_DONTROUTE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int MSG_WAITALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  protected jnr.constants.platform.AddressFamily soDomain;
    descriptor: Ljnr/constants/platform/AddressFamily;
    flags: (0x0004) ACC_PROTECTED

  protected jnr.constants.platform.ProtocolFamily soProtocolFamily;
    descriptor: Ljnr/constants/platform/ProtocolFamily;
    flags: (0x0004) ACC_PROTECTED

  protected jnr.constants.platform.Sock soType;
    descriptor: Ljnr/constants/platform/Sock;
    flags: (0x0004) ACC_PROTECTED

  protected jnr.netdb.Protocol soProtocol;
    descriptor: Ljnr/netdb/Protocol;
    flags: (0x0004) ACC_PROTECTED

  private static final java.lang.String JRUBY_SERVER_SOCKET_ERROR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "use ServerSocket for servers (http://wiki.jruby.org/ServerSocket)"

  private static volatile int[] $SWITCH_TABLE$jnr$constants$platform$Sock;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$jnr$constants$platform$ProtocolFamily;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 143
            new org.jruby.ext.socket.RubySocket$1
            dup
            invokespecial org.jruby.ext.socket.RubySocket$1.<init>:()V
            putstatic org.jruby.ext.socket.RubySocket.SOCKET_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         1: .line 718
            ldc "[Aa]lready.*bound"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.jruby.ext.socket.RubySocket.ALREADY_BOUND_PATTERN:Ljava/util/regex/Pattern;
         2: .line 719
            ldc "assign.*address"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.jruby.ext.socket.RubySocket.ADDR_NOT_AVAIL_PATTERN:Ljava/util/regex/Pattern;
         3: .line 733
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void createSocket(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 91
            aload 0 /* runtime */
            ldc "Socket"
            aload 0 /* runtime */
            ldc "BasicSocket"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            getstatic org.jruby.ext.socket.RubySocket.SOCKET_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_cSocket */
        start local 1 // org.jruby.RubyClass rb_cSocket
         1: .line 93
            aload 1 /* rb_cSocket */
            ldc "Constants"
            invokevirtual org.jruby.RubyClass.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 2 /* rb_mConstants */
        start local 2 // org.jruby.RubyModule rb_mConstants
         2: .line 96
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/Sock;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         3: .line 97
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/SocketOption;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         4: .line 98
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/SocketLevel;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         5: .line 99
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/ProtocolFamily;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         6: .line 100
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/AddressFamily;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         7: .line 101
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/INAddr;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         8: .line 102
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/IPProto;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
         9: .line 103
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/Shutdown;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
        10: .line 104
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/TCP;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
        11: .line 105
            aload 0 /* runtime */
            aload 2 /* rb_mConstants */
            ldc Ljnr/constants/platform/NameInfo;
            invokevirtual org.jruby.Ruby.loadConstantSet:(Lorg/jruby/RubyModule;Ljava/lang/Class;)V
        12: .line 110
            aload 2 /* rb_mConstants */
            ldc "SOMAXCONN"
            aload 0 /* runtime */
            ldc 128
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        13: .line 113
            aload 2 /* rb_mConstants */
            ldc "MSG_OOB"
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        14: .line 114
            aload 2 /* rb_mConstants */
            ldc "MSG_PEEK"
            aload 0 /* runtime */
            iconst_2
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        15: .line 115
            aload 2 /* rb_mConstants */
            ldc "MSG_DONTROUTE"
            aload 0 /* runtime */
            iconst_4
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        16: .line 116
            aload 2 /* rb_mConstants */
            ldc "MSG_WAITALL"
            aload 0 /* runtime */
            sipush 256
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        17: .line 118
            aload 2 /* rb_mConstants */
            ldc "AI_PASSIVE"
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 119
            aload 2 /* rb_mConstants */
            ldc "AI_CANONNAME"
            aload 0 /* runtime */
            iconst_2
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        19: .line 120
            aload 2 /* rb_mConstants */
            ldc "AI_NUMERICHOST"
            aload 0 /* runtime */
            iconst_4
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        20: .line 121
            aload 2 /* rb_mConstants */
            ldc "AI_ALL"
            aload 0 /* runtime */
            sipush 256
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        21: .line 122
            aload 2 /* rb_mConstants */
            ldc "AI_V4MAPPED_CFG"
            aload 0 /* runtime */
            sipush 512
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        22: .line 123
            aload 2 /* rb_mConstants */
            ldc "AI_ADDRCONFIG"
            aload 0 /* runtime */
            sipush 1024
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        23: .line 124
            aload 2 /* rb_mConstants */
            ldc "AI_V4MAPPED"
            aload 0 /* runtime */
            sipush 2048
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        24: .line 125
            aload 2 /* rb_mConstants */
            ldc "AI_NUMERICSERV"
            aload 0 /* runtime */
            sipush 4096
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        25: .line 127
            aload 2 /* rb_mConstants */
            ldc "AI_DEFAULT"
            aload 0 /* runtime */
            sipush 1536
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        26: .line 128
            aload 2 /* rb_mConstants */
            ldc "AI_MASK"
            aload 0 /* runtime */
            sipush 5127
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        27: .line 131
            aload 2 /* rb_mConstants */
            ldc "IP_MULTICAST_TTL"
            aload 0 /* runtime */
            bipush 10
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        28: .line 132
            aload 2 /* rb_mConstants */
            ldc "IP_MULTICAST_LOOP"
            aload 0 /* runtime */
            bipush 11
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        29: .line 133
            aload 2 /* rb_mConstants */
            ldc "IP_ADD_MEMBERSHIP"
            aload 0 /* runtime */
            bipush 12
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        30: .line 134
            aload 2 /* rb_mConstants */
            ldc "IP_MAX_MEMBERSHIPS"
            aload 0 /* runtime */
            bipush 20
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        31: .line 135
            aload 2 /* rb_mConstants */
            ldc "IP_DEFAULT_MULTICAST_LOOP"
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        32: .line 136
            aload 2 /* rb_mConstants */
            ldc "IP_DEFAULT_MULTICAST_TTL"
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        33: .line 138
            aload 1 /* rb_cSocket */
            aload 2 /* rb_mConstants */
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        34: .line 140
            aload 1 /* rb_cSocket */
            ldc Lorg/jruby/ext/socket/RubySocket;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        35: .line 141
            return
        end local 2 // org.jruby.RubyModule rb_mConstants
        end local 1 // org.jruby.RubyClass rb_cSocket
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0        runtime  Lorg/jruby/Ruby;
            1   36     1     rb_cSocket  Lorg/jruby/RubyClass;
            2   36     2  rb_mConstants  Lorg/jruby/RubyModule;
    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.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass type
         0: .line 151
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* type */
            invokespecial org.jruby.ext.socket.RubyBasicSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 730
            aload 0 /* this */
            iconst_0
            invokestatic jnr.netdb.Protocol.getProtocolByNumber:(I)Ljnr/netdb/Protocol;
            putfield org.jruby.ext.socket.RubySocket.soProtocol:Ljnr/netdb/Protocol;
         2: .line 152
            return
        end local 2 // org.jruby.RubyClass type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    3     1  runtime  Lorg/jruby/Ruby;
            0    3     2     type  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      type     

  public static org.jruby.runtime.builtin.IRubyObject for_fd(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=3, locals=7, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject socketClass
        start local 2 // org.jruby.runtime.builtin.IRubyObject _fd
         0: .line 156
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 158
            aload 2 /* _fd */
            instanceof org.jruby.RubyFixnum
            ifeq 10
         2: .line 159
            aload 2 /* _fd */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            l2i
            istore 4 /* intFD */
        start local 4 // int intFD
         3: .line 161
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            iload 4 /* intFD */
            invokevirtual org.jruby.util.io.FilenoUtil.getWrapperFromFileno:(I)Lorg/jruby/util/io/ChannelFD;
            astore 5 /* fd */
        start local 5 // org.jruby.util.io.ChannelFD fd
         4: .line 163
            aload 5 /* fd */
            ifnonnull 6
         5: .line 164
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEBADFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 167
      StackMap locals: org.jruby.Ruby int org.jruby.util.io.ChannelFD
      StackMap stack:
            aload 1 /* socketClass */
            checkcast org.jruby.RubyClass
            invokevirtual org.jruby.RubyClass.allocate:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.ext.socket.RubySocket
            astore 6 /* socket */
        start local 6 // org.jruby.ext.socket.RubySocket socket
         7: .line 169
            aload 6 /* socket */
            aload 3 /* runtime */
            aload 5 /* fd */
            invokevirtual org.jruby.ext.socket.RubySocket.initFieldsFromDescriptor:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ChannelFD;)V
         8: .line 171
            aload 6 /* socket */
            aload 5 /* fd */
            invokevirtual org.jruby.ext.socket.RubySocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
         9: .line 173
            aload 6 /* socket */
            areturn
        end local 6 // org.jruby.ext.socket.RubySocket socket
        end local 5 // org.jruby.util.io.ChannelFD fd
        end local 4 // int intFD
        10: .line 175
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 2 /* _fd */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFixnum:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject _fd
        end local 1 // org.jruby.runtime.builtin.IRubyObject socketClass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0      context  Lorg/jruby/runtime/ThreadContext;
            0   11     1  socketClass  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2          _fd  Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     3      runtime  Lorg/jruby/Ruby;
            3   10     4        intFD  I
            4   10     5           fd  Lorg/jruby/util/io/ChannelFD;
            7   10     6       socket  Lorg/jruby/ext/socket/RubySocket;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
             Name  Flags
      context      
      socketClass  
      _fd          

  public org.jruby.runtime.builtin.IRubyObject initialize(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 181
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 183
            aload 0 /* this */
            aload 4 /* runtime */
            aload 2 /* domain */
            aload 3 /* type */
            invokevirtual org.jruby.ext.socket.RubySocket.initFromArgs:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 185
            aload 0 /* this */
            areturn
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2   domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3     type  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     4  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      domain   
      type     

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
        start local 4 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 190
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 192
            aload 0 /* this */
            aload 5 /* runtime */
            aload 2 /* domain */
            aload 3 /* type */
            aload 4 /* protocol */
            invokevirtual org.jruby.ext.socket.RubySocket.initFromArgs:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 194
            aload 0 /* this */
            areturn
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject protocol
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/jruby/ext/socket/RubySocket;
            0    3     1   context  Lorg/jruby/runtime/ThreadContext;
            0    3     2    domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3      type  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     4  protocol  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     5   runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
          Name  Flags
      context   
      domain    
      type      
      protocol  

  public org.jruby.runtime.builtin.IRubyObject connect_nonblock(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=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 199
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.ext.socket.RubySocket.connect_nonblock:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject connect_nonblock(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
        start local 3 // org.jruby.runtime.builtin.IRubyObject opts
         0: .line 204
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.socket.RubySocket.addressForChannel:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/SocketAddress;
            astore 4 /* addr */
        start local 4 // java.net.SocketAddress addr
         1: .line 206
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* addr */
            aload 1 /* context */
            aload 3 /* opts */
            invokestatic org.jruby.ext.socket.RubySocket.extractExceptionArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            invokevirtual org.jruby.ext.socket.RubySocket.doConnectNonblock:(Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // java.net.SocketAddress addr
        end local 3 // org.jruby.runtime.builtin.IRubyObject opts
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     opts  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     4     addr  Ljava/net/SocketAddress;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      
      opts     

  public org.jruby.runtime.builtin.IRubyObject connect(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=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 211
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.socket.RubySocket.addressForChannel:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/SocketAddress;
            astore 3 /* addr */
        start local 3 // java.net.SocketAddress addr
         1: .line 213
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* addr */
            iconst_1
            invokevirtual org.jruby.ext.socket.RubySocket.doConnect:(Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.net.SocketAddress addr
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     3     addr  Ljava/net/SocketAddress;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject bind(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=3, locals=5, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 220
            aload 2 /* arg */
            instanceof org.jruby.ext.socket.Addrinfo
            ifeq 4
         1: .line 221
            aload 2 /* arg */
            checkcast org.jruby.ext.socket.Addrinfo
            astore 4 /* addr */
        start local 4 // org.jruby.ext.socket.Addrinfo addr
         2: .line 222
            aload 4 /* addr */
            invokevirtual org.jruby.ext.socket.Addrinfo.getSocketAddress:()Ljava/net/SocketAddress;
            astore 3 /* sockaddr */
        end local 4 // org.jruby.ext.socket.Addrinfo addr
        start local 3 // java.net.SocketAddress sockaddr
         3: .line 223
            goto 5
        end local 3 // java.net.SocketAddress sockaddr
         4: .line 224
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.util.io.Sockaddr.addressFromSockaddr:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/SocketAddress;
            astore 3 /* sockaddr */
        start local 3 // java.net.SocketAddress sockaddr
         5: .line 227
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* sockaddr */
            invokevirtual org.jruby.ext.socket.RubySocket.doBind:(Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;)V
         6: .line 229
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // java.net.SocketAddress sockaddr
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/jruby/ext/socket/RubySocket;
            0    7     1   context  Lorg/jruby/runtime/ThreadContext;
            0    7     2       arg  Lorg/jruby/runtime/builtin/IRubyObject;
            3    4     3  sockaddr  Ljava/net/SocketAddress;
            5    7     3  sockaddr  Ljava/net/SocketAddress;
            2    3     4      addr  Lorg/jruby/ext/socket/Addrinfo;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject recvfrom(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=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _length
         0: .line 234
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* _length */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.recvfrom:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject _length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  _length  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      _length  

  public org.jruby.runtime.builtin.IRubyObject recvfrom(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _length
        start local 3 // org.jruby.runtime.builtin.IRubyObject _flags
         0: .line 243
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* _length */
            invokevirtual org.jruby.ext.socket.RubySocket.recvfrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject _flags
        end local 2 // org.jruby.runtime.builtin.IRubyObject _length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  _length  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3   _flags  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      _length  
      _flags   

  public org.jruby.runtime.builtin.IRubyObject recvfrom_nonblock(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=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 248
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            ifnonnull 2
         1: .line 249
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "socket is not connected"
            invokevirtual org.jruby.Ruby.newErrnoENOTCONNError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.recvfrom_nonblock:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 3)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject listen(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=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject backlog
         0: .line 256
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "use ServerSocket for servers (http://wiki.jruby.org/ServerSocket)"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject backlog
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  backlog  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(notImplemented = true)
    MethodParameters:
         Name  Flags
      context  
      backlog  

  public org.jruby.runtime.builtin.IRubyObject accept(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 261
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "use ServerSocket for servers (http://wiki.jruby.org/ServerSocket)"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(notImplemented = true)
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject accept_nonblock(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=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 266
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "use ServerSocket for servers (http://wiki.jruby.org/ServerSocket)"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(notImplemented = true, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject gethostname(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: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 271
            aload 0 /* context */
            invokestatic org.jruby.ext.socket.SocketUtils.gethostname:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject getifaddrs(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: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 276
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArray;
            astore 2 /* list */
        start local 2 // org.jruby.RubyArray list
         1: .line 277
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Socket::Ifaddr"
            invokevirtual org.jruby.Ruby.getClassFromPath:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            astore 3 /* Ifaddr */
        start local 3 // org.jruby.RubyClass Ifaddr
         2: .line 279
            invokestatic java.net.NetworkInterface.getNetworkInterfaces:()Ljava/util/Enumeration;
            astore 4 /* en */
        start local 4 // java.util.Enumeration en
         3: .line 280
            goto 10
         4: .line 281
      StackMap locals: org.jruby.RubyArray org.jruby.RubyClass java.util.Enumeration
      StackMap stack:
            aload 4 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.NetworkInterface
            astore 5 /* iface */
        start local 5 // java.net.NetworkInterface iface
         5: .line 283
            aload 2 /* list */
            new org.jruby.ext.socket.Ifaddr
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* Ifaddr */
            aload 5 /* iface */
            invokespecial org.jruby.ext.socket.Ifaddr.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/net/NetworkInterface;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         6: .line 284
            aload 5 /* iface */
            invokevirtual java.net.NetworkInterface.getInterfaceAddresses:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray org.jruby.RubyClass java.util.Enumeration java.net.NetworkInterface top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InterfaceAddress
            astore 6 /* iaddr */
        start local 6 // java.net.InterfaceAddress iaddr
         8: .line 285
            aload 2 /* list */
            new org.jruby.ext.socket.Ifaddr
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* Ifaddr */
            aload 5 /* iface */
            aload 6 /* iaddr */
            invokespecial org.jruby.ext.socket.Ifaddr.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/net/NetworkInterface;Ljava/net/InterfaceAddress;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
        end local 6 // java.net.InterfaceAddress iaddr
         9: .line 284
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // java.net.NetworkInterface iface
        10: .line 280
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray org.jruby.RubyClass java.util.Enumeration
      StackMap stack:
            aload 4 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        end local 4 // java.util.Enumeration en
        11: .line 288
            goto 15
        12: .line 289
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray org.jruby.RubyClass
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        13: .line 290
            aload 4 /* ex */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 14
            aload 4 /* ex */
            checkcast org.jruby.exceptions.RaiseException
            athrow
        14: .line 291
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "getifaddrs: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex */
            invokevirtual java.lang.Exception.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr_with_trace:(Lorg/jruby/Ruby;Ljava/lang/String;[Ljava/lang/StackTraceElement;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Exception ex
        15: .line 293
      StackMap locals:
      StackMap stack:
            aload 2 /* list */
            areturn
        end local 3 // org.jruby.RubyClass Ifaddr
        end local 2 // org.jruby.RubyArray list
        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;
            1   16     2     list  Lorg/jruby/RubyArray;
            2   16     3   Ifaddr  Lorg/jruby/RubyClass;
            3   11     4       en  Ljava/util/Enumeration<Ljava/net/NetworkInterface;>;
            5   10     5    iface  Ljava/net/NetworkInterface;
            8    9     6    iaddr  Ljava/net/InterfaceAddress;
           13   15     4       ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    11      12  Class java.net.SocketException
           2    11      12  Class java.lang.RuntimeException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject gethostbyaddr(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=2, locals=3, 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[] args
         0: .line 298
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.SocketUtils.gethostbyaddr:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject getservbyname(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=2, locals=3, 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[] args
         0: .line 303
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.SocketUtils.getservbyname:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 1, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject pack_sockaddr_in(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        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 port
        start local 3 // org.jruby.runtime.builtin.IRubyObject host
         0: .line 308
            aload 0 /* context */
            aload 2 /* port */
            aload 3 /* host */
            invokestatic org.jruby.util.io.Sockaddr.pack_sockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject host
        end local 2 // org.jruby.runtime.builtin.IRubyObject port
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     port  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     host  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pack_sockaddr_in", "sockaddr_in"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      port     
      host     

  public static org.jruby.runtime.builtin.IRubyObject unpack_sockaddr_in(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=2, locals=3, 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 addr
         0: .line 313
            aload 0 /* context */
            aload 2 /* addr */
            invokestatic org.jruby.util.io.Sockaddr.unpack_sockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject addr
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     addr  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      addr     

  public static org.jruby.runtime.builtin.IRubyObject pack_sockaddr_un(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=2, locals=4, 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 filename
         0: .line 318
            aload 2 /* filename */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 319
            aload 0 /* context */
            aload 3 /* path */
            invokestatic org.jruby.util.io.Sockaddr.pack_sockaddr_un:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.lang.String path
        end local 2 // org.jruby.runtime.builtin.IRubyObject filename
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   context  Lorg/jruby/runtime/ThreadContext;
            0    2     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2  filename  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     3      path  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pack_sockaddr_un", "sockaddr_un"}, meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      filename  

  public static org.jruby.runtime.builtin.IRubyObject unpack_sockaddr_un(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=2, locals=3, 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 addr
         0: .line 324
            aload 0 /* context */
            aload 2 /* addr */
            invokestatic org.jruby.util.io.Sockaddr.unpack_sockaddr_un:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject addr
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     addr  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      addr     

  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=2, locals=3, 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 329
            aload 0 /* context */
            aload 2 /* hostname */
            invokestatic org.jruby.ext.socket.SocketUtils.gethostbyname:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        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    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  hostname  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      hostname  

  public static org.jruby.runtime.builtin.IRubyObject getaddrinfo(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=2, locals=3, 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[] args
         0: .line 334
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.SocketUtils.getaddrinfo:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 2, optional = 5, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject getnameinfo(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=2, locals=3, 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[] args
         0: .line 339
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.SocketUtils.getnameinfo:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 1, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject ip_address_list(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: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 344
            aload 0 /* context */
            invokestatic org.jruby.ext.socket.SocketUtils.ip_address_list:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      self     

  public static org.jruby.runtime.builtin.IRubyObject socketpair(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, 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;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        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 domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
        start local 4 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 349
            aload 4 /* protocol */
            invokestatic org.jruby.ext.socket.SocketUtils.protocolFamilyFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/ProtocolFamily;
            astore 5 /* pf */
        start local 5 // jnr.constants.platform.ProtocolFamily pf
         1: .line 350
            aload 5 /* pf */
            ifnonnull 2
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNIX:Ljnr/constants/platform/ProtocolFamily;
            astore 5 /* pf */
         2: .line 352
      StackMap locals: jnr.constants.platform.ProtocolFamily
      StackMap stack:
            aload 5 /* pf */
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNIX:Ljnr/constants/platform/ProtocolFamily;
            if_acmpeq 4
            aload 5 /* pf */
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            ifeq 4
         3: .line 353
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Socket.socketpair only supports streaming UNIX sockets"
            invokevirtual org.jruby.Ruby.newErrnoEOPNOTSUPPError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* domain */
            aload 3 /* type */
            invokestatic org.jruby.ext.socket.RubySocket.socketpair:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // jnr.constants.platform.ProtocolFamily pf
        end local 4 // org.jruby.runtime.builtin.IRubyObject protocol
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   context  Lorg/jruby/runtime/ThreadContext;
            0    5     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2    domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     3      type  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     4  protocol  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     5        pf  Ljnr/constants/platform/ProtocolFamily;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"socketpair", "pair"}, meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      domain    
      type      
      protocol  

  public static org.jruby.runtime.builtin.IRubyObject socketpair(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=4
        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 domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 361
            aload 2 /* domain */
            invokestatic org.jruby.ext.socket.SocketUtils.addressFamilyFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/AddressFamily;
            astore 4 /* af */
        start local 4 // jnr.constants.platform.AddressFamily af
         1: .line 362
            aload 4 /* af */
            ifnonnull 2
            getstatic jnr.constants.platform.AddressFamily.AF_UNIX:Ljnr/constants/platform/AddressFamily;
            astore 4 /* af */
         2: .line 363
      StackMap locals: jnr.constants.platform.AddressFamily
      StackMap stack:
            aload 3 /* type */
            invokestatic org.jruby.ext.socket.SocketUtils.sockFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/Sock;
            astore 5 /* s */
        start local 5 // jnr.constants.platform.Sock s
         3: .line 364
            aload 5 /* s */
            ifnonnull 4
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            astore 5 /* s */
         4: .line 366
      StackMap locals: jnr.constants.platform.Sock
      StackMap stack:
            aload 4 /* af */
            getstatic jnr.constants.platform.AddressFamily.AF_UNIX:Ljnr/constants/platform/AddressFamily;
            if_acmpne 5
            aload 5 /* s */
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            if_acmpeq 6
         5: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Socket.socketpair only supports streaming UNIX sockets"
            invokevirtual org.jruby.Ruby.newErrnoEOPNOTSUPPError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         7: .line 377
            invokestatic jnr.unixsocket.UnixSocketChannel.pair:()[Ljnr/unixsocket/UnixSocketChannel;
            astore 7 /* sp */
        start local 7 // jnr.unixsocket.UnixSocketChannel[] sp
         8: .line 378
            aload 6 /* runtime */
            ldc "Socket"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            astore 8 /* socketClass */
        start local 8 // org.jruby.RubyClass socketClass
         9: .line 380
            new org.jruby.ext.socket.RubySocket
            dup
            aload 6 /* runtime */
            aload 8 /* socketClass */
            invokespecial org.jruby.ext.socket.RubySocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 9 /* sock0 */
        start local 9 // org.jruby.ext.socket.RubySocket sock0
        10: .line 381
            aload 6 /* runtime */
            aload 7 /* sp */
            iconst_0
            aaload
            invokestatic org.jruby.ext.socket.RubySocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
            astore 10 /* fd0 */
        start local 10 // org.jruby.util.io.ChannelFD fd0
        11: .line 382
            aload 9 /* sock0 */
            aload 6 /* runtime */
            aload 10 /* fd0 */
            invokevirtual org.jruby.ext.socket.RubySocket.initFieldsFromDescriptor:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ChannelFD;)V
        12: .line 383
            aload 9 /* sock0 */
            aload 10 /* fd0 */
            invokevirtual org.jruby.ext.socket.RubySocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
        13: .line 385
            new org.jruby.ext.socket.RubySocket
            dup
            aload 6 /* runtime */
            aload 8 /* socketClass */
            invokespecial org.jruby.ext.socket.RubySocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 11 /* sock1 */
        start local 11 // org.jruby.ext.socket.RubySocket sock1
        14: .line 386
            aload 6 /* runtime */
            aload 7 /* sp */
            iconst_1
            aaload
            invokestatic org.jruby.ext.socket.RubySocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
            astore 12 /* fd1 */
        start local 12 // org.jruby.util.io.ChannelFD fd1
        15: .line 387
            aload 11 /* sock1 */
            aload 6 /* runtime */
            aload 12 /* fd1 */
            invokevirtual org.jruby.ext.socket.RubySocket.initFieldsFromDescriptor:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ChannelFD;)V
        16: .line 388
            aload 11 /* sock1 */
            aload 12 /* fd1 */
            invokevirtual org.jruby.ext.socket.RubySocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
        17: .line 390
            aload 6 /* runtime */
            aload 9 /* sock0 */
            aload 11 /* sock1 */
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
        18: areturn
        end local 12 // org.jruby.util.io.ChannelFD fd1
        end local 11 // org.jruby.ext.socket.RubySocket sock1
        end local 10 // org.jruby.util.io.ChannelFD fd0
        end local 9 // org.jruby.ext.socket.RubySocket sock0
        end local 8 // org.jruby.RubyClass socketClass
        end local 7 // jnr.unixsocket.UnixSocketChannel[] sp
        19: .line 392
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject jnr.constants.platform.AddressFamily jnr.constants.platform.Sock org.jruby.Ruby
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        20: .line 393
            aload 6 /* runtime */
            aload 8 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // java.io.IOException ioe
        end local 6 // org.jruby.Ruby runtime
        end local 5 // jnr.constants.platform.Sock s
        end local 4 // jnr.constants.platform.AddressFamily af
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0      context  Lorg/jruby/runtime/ThreadContext;
            0   21     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     2       domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     3         type  Lorg/jruby/runtime/builtin/IRubyObject;
            1   21     4           af  Ljnr/constants/platform/AddressFamily;
            3   21     5            s  Ljnr/constants/platform/Sock;
            7   21     6      runtime  Lorg/jruby/Ruby;
            8   19     7           sp  [Ljnr/unixsocket/UnixSocketChannel;
            9   19     8  socketClass  Lorg/jruby/RubyClass;
           10   19     9        sock0  Lorg/jruby/ext/socket/RubySocket;
           11   19    10          fd0  Lorg/jruby/util/io/ChannelFD;
           14   19    11        sock1  Lorg/jruby/ext/socket/RubySocket;
           15   19    12          fd1  Lorg/jruby/util/io/ChannelFD;
           20   21     8          ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    18      19  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"socketpair", "pair"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      domain   
      type     

  private void initFieldsFromDescriptor(org.jruby.Ruby, org.jruby.util.io.ChannelFD);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/ChannelFD;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.io.ChannelFD fd
         0: .line 398
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            astore 3 /* mainChannel */
        start local 3 // java.nio.channels.Channel mainChannel
         1: .line 400
            aload 3 /* mainChannel */
            instanceof java.nio.channels.SocketChannel
            ifeq 7
         2: .line 403
            aload 0 /* this */
            getstatic jnr.constants.platform.AddressFamily.AF_INET:Ljnr/constants/platform/AddressFamily;
            putfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
         3: .line 404
            aload 0 /* this */
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            putfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
         4: .line 405
            aload 0 /* this */
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET:Ljnr/constants/platform/ProtocolFamily;
            putfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
         5: .line 406
            aload 0 /* this */
            ldc "tcp"
            invokestatic jnr.netdb.Protocol.getProtocolByName:(Ljava/lang/String;)Ljnr/netdb/Protocol;
            putfield org.jruby.ext.socket.RubySocket.soProtocol:Ljnr/netdb/Protocol;
         6: .line 408
            goto 18
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
         7: aload 3 /* mainChannel */
            instanceof jnr.unixsocket.UnixSocketChannel
            ifeq 12
         8: .line 409
            aload 0 /* this */
            getstatic jnr.constants.platform.AddressFamily.AF_UNIX:Ljnr/constants/platform/AddressFamily;
            putfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
         9: .line 410
            aload 0 /* this */
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            putfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
        10: .line 411
            aload 0 /* this */
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNIX:Ljnr/constants/platform/ProtocolFamily;
            putfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
        11: .line 413
            goto 18
      StackMap locals:
      StackMap stack:
        12: aload 3 /* mainChannel */
            instanceof java.nio.channels.DatagramChannel
            ifeq 17
        13: .line 416
            aload 0 /* this */
            getstatic jnr.constants.platform.AddressFamily.AF_INET:Ljnr/constants/platform/AddressFamily;
            putfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
        14: .line 417
            aload 0 /* this */
            getstatic jnr.constants.platform.Sock.SOCK_DGRAM:Ljnr/constants/platform/Sock;
            putfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
        15: .line 418
            aload 0 /* this */
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET:Ljnr/constants/platform/ProtocolFamily;
            putfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
        16: .line 420
            goto 18
        17: .line 421
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            ldc "can't Socket.new/for_fd against a non-socket"
            invokevirtual org.jruby.Ruby.newErrnoENOTSOCKError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 423
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.channels.Channel mainChannel
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/jruby/ext/socket/RubySocket;
            0   19     1      runtime  Lorg/jruby/Ruby;
            0   19     2           fd  Lorg/jruby/util/io/ChannelFD;
            1   19     3  mainChannel  Ljava/nio/channels/Channel;
    MethodParameters:
         Name  Flags
      runtime  
      fd       

  private void initFromArgs(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
        start local 4 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 426
            aload 0 /* this */
            aload 4 /* protocol */
            invokevirtual org.jruby.ext.socket.RubySocket.setProtocol:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 427
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* domain */
            aload 3 /* type */
            invokevirtual org.jruby.ext.socket.RubySocket.initFromArgs:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 428
            return
        end local 4 // org.jruby.runtime.builtin.IRubyObject protocol
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/jruby/ext/socket/RubySocket;
            0    3     1   runtime  Lorg/jruby/Ruby;
            0    3     2    domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3      type  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     4  protocol  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      runtime   
      domain    
      type      
      protocol  

  private void initFromArgs(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject domain
        start local 3 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 431
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* domain */
            invokevirtual org.jruby.ext.socket.RubySocket.setDomain:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 432
            aload 0 /* this */
            aload 1 /* runtime */
            aload 3 /* type */
            invokevirtual org.jruby.ext.socket.RubySocket.setType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 434
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.ext.socket.RubySocket.initChannelFD:(Lorg/jruby/Ruby;)Lorg/jruby/util/io/ChannelFD;
            astore 4 /* fd */
        start local 4 // org.jruby.util.io.ChannelFD fd
         3: .line 435
            aload 0 /* this */
            aload 4 /* fd */
            invokevirtual org.jruby.ext.socket.RubySocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
         4: .line 436
            return
        end local 4 // org.jruby.util.io.ChannelFD fd
        end local 3 // org.jruby.runtime.builtin.IRubyObject type
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    5     1  runtime  Lorg/jruby/Ruby;
            0    5     2   domain  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     3     type  Lorg/jruby/runtime/builtin/IRubyObject;
            3    5     4       fd  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
         Name  Flags
      runtime  
      domain   
      type     

  protected void initFromServer(org.jruby.Ruby, org.jruby.ext.socket.RubySocket, java.nio.channels.SocketChannel);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ext/socket/RubySocket;Ljava/nio/channels/SocketChannel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.ext.socket.RubySocket serverSocket
        start local 3 // java.nio.channels.SocketChannel socketChannel
         0: .line 439
            aload 0 /* this */
            aload 2 /* serverSocket */
            getfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
            putfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
         1: .line 440
            aload 0 /* this */
            aload 2 /* serverSocket */
            getfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
            putfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
         2: .line 441
            aload 0 /* this */
            aload 2 /* serverSocket */
            getfield org.jruby.ext.socket.RubySocket.soProtocol:Ljnr/netdb/Protocol;
            putfield org.jruby.ext.socket.RubySocket.soProtocol:Ljnr/netdb/Protocol;
         3: .line 443
            aload 0 /* this */
            aload 1 /* runtime */
            aload 3 /* socketChannel */
            invokestatic org.jruby.ext.socket.RubySocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.ext.socket.RubySocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
         4: .line 444
            return
        end local 3 // java.nio.channels.SocketChannel socketChannel
        end local 2 // org.jruby.ext.socket.RubySocket serverSocket
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/jruby/ext/socket/RubySocket;
            0    5     1        runtime  Lorg/jruby/Ruby;
            0    5     2   serverSocket  Lorg/jruby/ext/socket/RubySocket;
            0    5     3  socketChannel  Ljava/nio/channels/SocketChannel;
    MethodParameters:
               Name  Flags
      runtime        
      serverSocket   
      socketChannel  

  protected org.jruby.util.io.ChannelFD initChannelFD(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/util/io/ChannelFD;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
         0: .line 449
            invokestatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$Sock:()[I
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 1
                    2: 11
              default: 13
          }
         1: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNIX:Ljnr/constants/platform/ProtocolFamily;
            if_acmpeq 3
         2: .line 452
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            getstatic jnr.constants.platform.ProtocolFamily.PF_LOCAL:Ljnr/constants/platform/ProtocolFamily;
            if_acmpne 5
         3: .line 453
      StackMap locals:
      StackMap stack:
            invokestatic jnr.unixsocket.UnixSocketChannel.open:()Ljnr/unixsocket/UnixSocketChannel;
            astore 2 /* channel */
        start local 2 // java.nio.channels.Channel channel
         4: .line 454
            goto 14
        end local 2 // java.nio.channels.Channel channel
         5: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET:Ljnr/constants/platform/ProtocolFamily;
            if_acmpeq 8
         6: .line 456
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET6:Ljnr/constants/platform/ProtocolFamily;
            if_acmpeq 8
         7: .line 457
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNSPEC:Ljnr/constants/platform/ProtocolFamily;
            if_acmpne 10
         8: .line 458
      StackMap locals:
      StackMap stack:
            invokestatic java.nio.channels.SocketChannel.open:()Ljava/nio/channels/SocketChannel;
            astore 2 /* channel */
        start local 2 // java.nio.channels.Channel channel
         9: .line 459
            goto 14
        end local 2 // java.nio.channels.Channel channel
        10: .line 461
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unsupported protocol family `"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 465
      StackMap locals:
      StackMap stack:
            invokestatic java.nio.channels.DatagramChannel.open:()Ljava/nio/channels/DatagramChannel;
            astore 2 /* channel */
        start local 2 // java.nio.channels.Channel channel
        12: .line 466
            goto 14
        end local 2 // java.nio.channels.Channel channel
        13: .line 468
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unsupported socket type `"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 2 // java.nio.channels.Channel channel
        14: .line 471
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            aload 1 /* runtime */
            aload 2 /* channel */
            invokestatic org.jruby.ext.socket.RubySocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
        15: areturn
        end local 2 // java.nio.channels.Channel channel
        16: .line 473
      StackMap locals: org.jruby.ext.socket.RubySocket org.jruby.Ruby
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        17: .line 474
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "initialize: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/ext/socket/RubySocket;
            0   18     1  runtime  Lorg/jruby/Ruby;
            4    5     2  channel  Ljava/nio/channels/Channel;
            9   10     2  channel  Ljava/nio/channels/Channel;
           12   13     2  channel  Ljava/nio/channels/Channel;
           14   16     2  channel  Ljava/nio/channels/Channel;
           17   18     2        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    15      16  Class java.io.IOException
    MethodParameters:
         Name  Flags
      runtime  

  private void setProtocol(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 479
            aload 0 /* this */
            aload 1 /* protocol */
            invokestatic org.jruby.ext.socket.SocketUtils.protocolFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/netdb/Protocol;
            putfield org.jruby.ext.socket.RubySocket.soProtocol:Ljnr/netdb/Protocol;
         1: .line 480
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject protocol
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/ext/socket/RubySocket;
            0    2     1  protocol  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      protocol  

  private void setType(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 483
            aload 2 /* type */
            invokestatic org.jruby.ext.socket.SocketUtils.sockFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/Sock;
            astore 3 /* sockType */
        start local 3 // jnr.constants.platform.Sock sockType
         1: .line 485
            aload 3 /* sockType */
            ifnonnull 3
         2: .line 486
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unknown socket type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 489
      StackMap locals: jnr.constants.platform.Sock
      StackMap stack:
            aload 0 /* this */
            aload 3 /* sockType */
            putfield org.jruby.ext.socket.RubySocket.soType:Ljnr/constants/platform/Sock;
         4: .line 490
            return
        end local 3 // jnr.constants.platform.Sock sockType
        end local 2 // org.jruby.runtime.builtin.IRubyObject type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/ext/socket/RubySocket;
            0    5     1   runtime  Lorg/jruby/Ruby;
            0    5     2      type  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3  sockType  Ljnr/constants/platform/Sock;
    MethodParameters:
         Name  Flags
      runtime  
      type     

  private void setDomain(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject domain
         0: .line 493
            aload 2 /* domain */
            invokestatic org.jruby.ext.socket.SocketUtils.addressFamilyFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/AddressFamily;
            astore 3 /* family */
        start local 3 // jnr.constants.platform.AddressFamily family
         1: .line 495
            aload 3 /* family */
            ifnonnull 3
         2: .line 496
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unknown socket domain "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* domain */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 499
      StackMap locals: jnr.constants.platform.AddressFamily
      StackMap stack:
            aload 0 /* this */
            aload 3 /* family */
            putfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
         4: .line 500
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soDomain:Ljnr/constants/platform/AddressFamily;
            invokevirtual jnr.constants.platform.AddressFamily.name:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         5: .line 501
            aload 4 /* name */
            ldc "pseudo_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
            aload 4 /* name */
            bipush 7
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* name */
         6: .line 502
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "PF"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/ProtocolFamily;
            putfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
         7: .line 503
            return
        end local 4 // java.lang.String name
        end local 3 // jnr.constants.platform.AddressFamily family
        end local 2 // org.jruby.runtime.builtin.IRubyObject domain
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    8     1  runtime  Lorg/jruby/Ruby;
            0    8     2   domain  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     3   family  Ljnr/constants/platform/AddressFamily;
            5    8     4     name  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      runtime  
      domain   

  private org.jruby.runtime.builtin.IRubyObject doConnectNonblock(org.jruby.runtime.ThreadContext, java.net.SocketAddress, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.net.SocketAddress addr
        start local 3 // boolean ex
         0: .line 506
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getChannel:()Ljava/nio/channels/Channel;
            astore 4 /* channel */
        start local 4 // java.nio.channels.Channel channel
         1: .line 508
            aload 4 /* channel */
            instanceof java.nio.channels.SelectableChannel
            ifne 3
         2: .line 509
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newErrnoENOPROTOOPTError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 512
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            aload 4 /* channel */
            checkcast java.nio.channels.SelectableChannel
            astore 5 /* selectable */
        start local 5 // java.nio.channels.SelectableChannel selectable
         4: .line 513
            aload 5 /* selectable */
            invokevirtual java.nio.channels.SelectableChannel.blockingLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         5: .line 514
            aload 5 /* selectable */
            invokevirtual java.nio.channels.SelectableChannel.isBlocking:()Z
            istore 7 /* oldBlocking */
        start local 7 // boolean oldBlocking
         6: .line 516
            aload 5 /* selectable */
            iconst_0
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         7: .line 519
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* addr */
            iload 3 /* ex */
            invokevirtual org.jruby.ext.socket.RubySocket.doConnect:(Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9
         8: .line 522
            aload 5 /* selectable */
            iload 7 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         9: .line 519
            aload 6
            monitorexit
        10: aload 9
            areturn
        11: .line 521
      StackMap locals: org.jruby.ext.socket.RubySocket org.jruby.runtime.ThreadContext java.net.SocketAddress int java.nio.channels.Channel java.nio.channels.SelectableChannel java.lang.Object int
      StackMap stack: java.lang.Throwable
            astore 8
        12: .line 522
            aload 5 /* selectable */
            iload 7 /* oldBlocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        13: .line 523
            aload 8
            athrow
        14: .line 526
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedChannelException
            pop
        15: .line 527
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 529
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        17: .line 530
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "connect(2): name or service not known"
            aload 8 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.io.IOException e
        end local 7 // boolean oldBlocking
        18: .line 513
      StackMap locals: org.jruby.ext.socket.RubySocket org.jruby.runtime.ThreadContext java.net.SocketAddress int java.nio.channels.Channel java.nio.channels.SelectableChannel java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        19: athrow
        end local 5 // java.nio.channels.SelectableChannel selectable
        end local 4 // java.nio.channels.Channel channel
        end local 3 // boolean ex
        end local 2 // java.net.SocketAddress addr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/jruby/ext/socket/RubySocket;
            0   20     1      context  Lorg/jruby/runtime/ThreadContext;
            0   20     2         addr  Ljava/net/SocketAddress;
            0   20     3           ex  Z
            1   20     4      channel  Ljava/nio/channels/Channel;
            4   20     5   selectable  Ljava/nio/channels/SelectableChannel;
            6   18     7  oldBlocking  Z
           17   18     8            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7     8      11  any
           6     9      14  Class java.nio.channels.ClosedChannelException
          11    14      14  Class java.nio.channels.ClosedChannelException
           6     9      16  Class java.io.IOException
          11    14      16  Class java.io.IOException
           5    10      18  any
          11    19      18  any
    MethodParameters:
         Name  Flags
      context  
      addr     
      ex       

  protected org.jruby.runtime.builtin.IRubyObject doConnect(org.jruby.runtime.ThreadContext, java.net.SocketAddress, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.net.SocketAddress addr
        start local 3 // boolean ex
         0: .line 536
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 537
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getChannel:()Ljava/nio/channels/Channel;
            astore 5 /* channel */
        start local 5 // java.nio.channels.Channel channel
         2: .line 540
            iconst_1
            istore 6 /* result */
        start local 6 // boolean result
         3: .line 541
            aload 5 /* channel */
            instanceof java.nio.channels.SocketChannel
            ifeq 10
         4: .line 542
            aload 5 /* channel */
            checkcast java.nio.channels.SocketChannel
            astore 7 /* socket */
        start local 7 // java.nio.channels.SocketChannel socket
         5: .line 544
            aload 7 /* socket */
            invokevirtual java.nio.channels.SocketChannel.isConnectionPending:()Z
            ifeq 8
         6: .line 546
            aload 7 /* socket */
            invokevirtual java.nio.channels.SocketChannel.finishConnect:()Z
            istore 6 /* result */
         7: .line 547
            goto 17
         8: .line 548
      StackMap locals: org.jruby.ext.socket.RubySocket org.jruby.runtime.ThreadContext java.net.SocketAddress int org.jruby.Ruby java.nio.channels.Channel int java.nio.channels.SocketChannel
      StackMap stack:
            aload 7 /* socket */
            aload 2 /* addr */
            invokevirtual java.nio.channels.SocketChannel.connect:(Ljava/net/SocketAddress;)Z
            istore 6 /* result */
        end local 7 // java.nio.channels.SocketChannel socket
         9: .line 550
            goto 17
        10: .line 551
      StackMap locals:
      StackMap stack:
            aload 5 /* channel */
            instanceof jnr.unixsocket.UnixSocketChannel
            ifeq 13
        11: .line 552
            aload 5 /* channel */
            checkcast jnr.unixsocket.UnixSocketChannel
            aload 2 /* addr */
            checkcast jnr.unixsocket.UnixSocketAddress
            invokevirtual jnr.unixsocket.UnixSocketChannel.connect:(Ljnr/unixsocket/UnixSocketAddress;)Z
            istore 6 /* result */
        12: .line 554
            goto 17
        13: .line 555
      StackMap locals:
      StackMap stack:
            aload 5 /* channel */
            instanceof java.nio.channels.DatagramChannel
            ifeq 16
        14: .line 556
            aload 5 /* channel */
            checkcast java.nio.channels.DatagramChannel
            aload 2 /* addr */
            invokevirtual java.nio.channels.DatagramChannel.connect:(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
            pop
        15: .line 557
            goto 17
        16: .line 559
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoENOPROTOOPTError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        17: .line 562
      StackMap locals:
      StackMap stack:
            iload 6 /* result */
            ifne 35
        18: .line 563
            iload 3 /* ex */
            ifne 20
            aload 4 /* runtime */
            ldc "wait_writable"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
        19: areturn
        20: .line 564
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINPROGRESSWritableError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // boolean result
        21: .line 567
      StackMap locals: org.jruby.ext.socket.RubySocket org.jruby.runtime.ThreadContext java.net.SocketAddress int org.jruby.Ruby java.nio.channels.Channel
      StackMap stack: java.nio.channels.AlreadyConnectedException
            pop
        22: .line 568
            iload 3 /* ex */
            ifne 23
            aload 4 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        23: .line 569
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEISCONNError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        24: .line 571
      StackMap locals:
      StackMap stack: java.nio.channels.ConnectionPendingException
            pop
        25: .line 572
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINPROGRESSWritableError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        26: .line 574
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
        27: .line 575
            aload 4 /* runtime */
            ldc "connect(2): unknown host"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        28: .line 577
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 6 /* e */
        start local 6 // java.net.SocketException e
        29: .line 580
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 4 /* runtime */
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.cleanup:(Lorg/jruby/Ruby;Z)V
        30: .line 581
            aload 4 /* runtime */
            aload 6 /* e */
            ldc "connect(2)"
            aload 2 /* addr */
            invokestatic org.jruby.ext.socket.RubySocket.buildSocketException:(Lorg/jruby/Ruby;Ljava/net/SocketException;Ljava/lang/String;Ljava/net/SocketAddress;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.net.SocketException e
        31: .line 583
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        32: .line 584
            aload 4 /* runtime */
            ldc "connect(2): name or service not known"
            aload 6 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.io.IOException e
        33: .line 586
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 6 /* e */
        start local 6 // java.lang.IllegalArgumentException e
        34: .line 587
            aload 4 /* runtime */
            aload 6 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            aload 6 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.IllegalArgumentException e
        35: .line 590
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 5 // java.nio.channels.Channel channel
        end local 4 // org.jruby.Ruby runtime
        end local 3 // boolean ex
        end local 2 // java.net.SocketAddress addr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lorg/jruby/ext/socket/RubySocket;
            0   36     1  context  Lorg/jruby/runtime/ThreadContext;
            0   36     2     addr  Ljava/net/SocketAddress;
            0   36     3       ex  Z
            1   36     4  runtime  Lorg/jruby/Ruby;
            2   36     5  channel  Ljava/nio/channels/Channel;
            3   21     6   result  Z
            5    9     7   socket  Ljava/nio/channels/SocketChannel;
           29   31     6        e  Ljava/net/SocketException;
           32   33     6        e  Ljava/io/IOException;
           34   35     6        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           2    19      21  Class java.nio.channels.AlreadyConnectedException
          20    21      21  Class java.nio.channels.AlreadyConnectedException
           2    19      24  Class java.nio.channels.ConnectionPendingException
          20    21      24  Class java.nio.channels.ConnectionPendingException
           2    19      26  Class java.net.UnknownHostException
          20    21      26  Class java.net.UnknownHostException
           2    19      28  Class java.net.SocketException
          20    21      28  Class java.net.SocketException
           2    19      31  Class java.io.IOException
          20    21      31  Class java.io.IOException
           2    19      33  Class java.lang.IllegalArgumentException
          20    21      33  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      context  
      addr     
      ex       

  protected void doBind(org.jruby.runtime.ThreadContext, java.net.SocketAddress);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/SocketAddress;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.net.SocketAddress iaddr
         0: .line 594
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 596
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getChannel:()Ljava/nio/channels/Channel;
            astore 4 /* channel */
        start local 4 // java.nio.channels.Channel channel
         2: .line 599
            aload 4 /* channel */
            instanceof java.nio.channels.SocketChannel
            ifeq 6
         3: .line 600
            aload 4 /* channel */
            checkcast java.nio.channels.SocketChannel
            invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
            astore 5 /* socket */
        start local 5 // java.net.Socket socket
         4: .line 601
            aload 5 /* socket */
            aload 2 /* iaddr */
            invokevirtual java.net.Socket.bind:(Ljava/net/SocketAddress;)V
        end local 5 // java.net.Socket socket
         5: .line 602
            goto 20
         6: .line 603
      StackMap locals: org.jruby.Ruby java.nio.channels.Channel
      StackMap stack:
            aload 4 /* channel */
            instanceof jnr.unixsocket.UnixSocketChannel
            ifne 20
         7: .line 606
            aload 4 /* channel */
            instanceof java.nio.channels.DatagramChannel
            ifeq 11
         8: .line 607
            aload 4 /* channel */
            checkcast java.nio.channels.DatagramChannel
            invokevirtual java.nio.channels.DatagramChannel.socket:()Ljava/net/DatagramSocket;
            astore 5 /* socket */
        start local 5 // java.net.DatagramSocket socket
         9: .line 608
            aload 5 /* socket */
            aload 2 /* iaddr */
            invokevirtual java.net.DatagramSocket.bind:(Ljava/net/SocketAddress;)V
        end local 5 // java.net.DatagramSocket socket
        10: .line 609
            goto 20
        11: .line 611
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoENOPROTOOPTError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 614
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
        13: .line 615
            aload 3 /* runtime */
            ldc "bind(2): unknown host"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        14: .line 617
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 5 /* e */
        start local 5 // java.net.SocketException e
        15: .line 618
            aload 3 /* runtime */
            aload 5 /* e */
            ldc "bind(2)"
            aload 2 /* iaddr */
            invokestatic org.jruby.ext.socket.RubySocket.buildSocketException:(Lorg/jruby/Ruby;Ljava/net/SocketException;Ljava/lang/String;Ljava/net/SocketAddress;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.net.SocketException e
        16: .line 620
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        17: .line 621
            aload 3 /* runtime */
            ldc "bind(2): name or service not known"
            aload 5 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.io.IOException e
        18: .line 623
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
        19: .line 624
            aload 3 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokestatic org.jruby.ext.socket.RubySocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        20: .line 626
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.nio.channels.Channel channel
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.net.SocketAddress iaddr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/jruby/ext/socket/RubySocket;
            0   21     1  context  Lorg/jruby/runtime/ThreadContext;
            0   21     2    iaddr  Ljava/net/SocketAddress;
            1   21     3  runtime  Lorg/jruby/Ruby;
            2   21     4  channel  Ljava/nio/channels/Channel;
            4    5     5   socket  Ljava/net/Socket;
            9   10     5   socket  Ljava/net/DatagramSocket;
           15   16     5        e  Ljava/net/SocketException;
           17   18     5        e  Ljava/io/IOException;
           19   20     5        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           2    12      12  Class java.net.UnknownHostException
           2    12      14  Class java.net.SocketException
           2    12      16  Class java.io.IOException
           2    12      18  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      context  
      iaddr    

  static org.jruby.exceptions.RaiseException buildSocketException(org.jruby.Ruby, java.net.SocketException, java.lang.String, java.net.SocketAddress);
    descriptor: (Lorg/jruby/Ruby;Ljava/net/SocketException;Ljava/lang/String;Ljava/net/SocketAddress;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.net.SocketException ex
        start local 2 // java.lang.String caller
        start local 3 // java.net.SocketAddress addr
         0: .line 631
            aload 1 /* ex */
            invokestatic org.jruby.runtime.Helpers.errnoFromException:(Ljava/lang/Throwable;)Ljnr/constants/platform/Errno;
            astore 4 /* errno */
        start local 4 // jnr.constants.platform.Errno errno
         1: .line 632
            new java.lang.StringBuilder
            dup
            aload 2 /* caller */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* addr */
            invokestatic org.jruby.ext.socket.RubySocket.formatAddress:(Ljava/net/SocketAddress;)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* callerWithAddr */
        start local 5 // java.lang.String callerWithAddr
         2: .line 634
            aload 4 /* errno */
            ifnull 4
         3: .line 635
            aload 0 /* runtime */
            aload 4 /* errno */
            aload 5 /* callerWithAddr */
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
         4: .line 638
      StackMap locals: jnr.constants.platform.Errno java.lang.String
      StackMap stack:
            aload 1 /* ex */
            invokevirtual java.net.SocketException.getMessage:()Ljava/lang/String;
            astore 6 /* message */
        start local 6 // java.lang.String message
         5: .line 640
            aload 6 /* message */
            ifnull 10
         6: .line 644
            getstatic org.jruby.ext.socket.RubySocket.ALREADY_BOUND_PATTERN:Ljava/util/regex/Pattern;
            aload 6 /* message */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 8
         7: .line 645
            aload 0 /* runtime */
            aload 5 /* callerWithAddr */
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
         8: .line 647
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.jruby.ext.socket.RubySocket.ADDR_NOT_AVAIL_PATTERN:Ljava/util/regex/Pattern;
            aload 6 /* message */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 10
         9: .line 648
            aload 0 /* runtime */
            aload 5 /* callerWithAddr */
            invokevirtual org.jruby.Ruby.newErrnoEADDRNOTAVAILError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        10: .line 652
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 5 /* callerWithAddr */
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 6 // java.lang.String message
        end local 5 // java.lang.String callerWithAddr
        end local 4 // jnr.constants.platform.Errno errno
        end local 3 // java.net.SocketAddress addr
        end local 2 // java.lang.String caller
        end local 1 // java.net.SocketException ex
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0         runtime  Lorg/jruby/Ruby;
            0   11     1              ex  Ljava/net/SocketException;
            0   11     2          caller  Ljava/lang/String;
            0   11     3            addr  Ljava/net/SocketAddress;
            1   11     4           errno  Ljnr/constants/platform/Errno;
            2   11     5  callerWithAddr  Ljava/lang/String;
            5   11     6         message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      runtime  final
      ex       final
      caller   final
      addr     final

  private static java.lang.CharSequence formatAddress(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Ljava/lang/CharSequence;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.net.SocketAddress addr
         0: .line 656
            aload 0 /* addr */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* addr */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
         2: .line 658
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            ifle 4
            aload 1 /* str */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 4
         3: .line 659
            aload 1 /* str */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         4: .line 661
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* str */
            areturn
        end local 1 // java.lang.String str
        end local 0 // java.net.SocketAddress addr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  addr  Ljava/net/SocketAddress;
            2    5     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      addr  final

  private java.net.SocketAddress addressForChannel(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/SocketAddress;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 665
            aload 2 /* arg */
            instanceof org.jruby.ext.socket.Addrinfo
            ifeq 1
            aload 2 /* arg */
            checkcast org.jruby.ext.socket.Addrinfo
            invokevirtual org.jruby.ext.socket.Addrinfo.getSocketAddress:()Ljava/net/SocketAddress;
            areturn
         1: .line 667
      StackMap locals:
      StackMap stack:
            invokestatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$ProtocolFamily:()[I
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iaload
            lookupswitch { // 5
                    1: 3
                    2: 2
                    3: 2
                    4: 3
                   32: 3
              default: 4
          }
         2: .line 670
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.util.io.Sockaddr.addressFromSockaddr_un:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/unixsocket/UnixSocketAddress;
            areturn
         3: .line 675
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.util.io.Sockaddr.addressFromSockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/InetSocketAddress;
            areturn
         4: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "unsupported protocol family `"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.soProtocolFamily:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            0    5     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      arg      

  protected org.jruby.runtime.builtin.IRubyObject addrFor(org.jruby.runtime.ThreadContext, java.net.InetSocketAddress, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/InetSocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.net.InetSocketAddress addr
        start local 3 // boolean reverse
         0: .line 684
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 686
            new org.jruby.ext.socket.Addrinfo
            dup
            aload 4 /* runtime */
            aload 4 /* runtime */
            ldc "Addrinfo"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 2 /* addr */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aload 2 /* addr */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            getstatic jnr.constants.platform.Sock.SOCK_DGRAM:Ljnr/constants/platform/Sock;
            invokespecial org.jruby.ext.socket.Addrinfo.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/net/InetAddress;ILjnr/constants/platform/Sock;)V
            areturn
        end local 4 // org.jruby.Ruby runtime
        end local 3 // boolean reverse
        end local 2 // java.net.InetSocketAddress addr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     addr  Ljava/net/InetSocketAddress;
            0    2     3  reverse  Z
            1    2     4  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      context  
      addr     
      reverse  

  public org.jruby.runtime.builtin.IRubyObject close(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 692
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            ifnull 4
         1: .line 693
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.isClosed:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubySocket.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         3: .line 695
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.socket.RubySocket.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 697
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final

  public org.jruby.RubyBoolean closed_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubySocket this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 702
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            ifnonnull 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         1: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokespecial org.jruby.ext.socket.RubyBasicSocket.closed_p:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubySocket;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  protected java.net.SocketAddress getSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.ext.socket.RubySocket this
         0: .line 708
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubySocket.getChannel:()Ljava/nio/channels/Channel;
            astore 1 /* channel */
        start local 1 // java.nio.channels.Channel channel
         1: .line 710
            aload 1 /* channel */
            invokestatic org.jruby.ext.socket.SocketType.forChannel:(Ljava/nio/channels/Channel;)Lorg/jruby/ext/socket/SocketType;
            aload 1 /* channel */
            invokevirtual org.jruby.ext.socket.SocketType.getLocalSocketAddress:(Ljava/nio/channels/Channel;)Ljava/net/SocketAddress;
            areturn
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.ext.socket.RubySocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubySocket;
            1    2     1  channel  Ljava/nio/channels/Channel;

  public static java.lang.RuntimeException sockerr(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String msg
         0: .line 715
            aload 0 /* runtime */
            aload 1 /* msg */
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            areturn
        end local 1 // java.lang.String msg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1      msg  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  
      msg      

  static int[] $SWITCH_TABLE$jnr$constants$platform$Sock();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 89
            getstatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$Sock:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jnr.constants.platform.Sock.values:()[Ljnr/constants/platform/Sock;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_DGRAM:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_MAXADDRLEN:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_RAW:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_RDM:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_SEQPACKET:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            iconst_1
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jnr.constants.platform.Sock.__UNKNOWN_CONSTANT__:Ljnr/constants/platform/Sock;
            invokevirtual jnr.constants.platform.Sock.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            dup
            putstatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$Sock:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$jnr$constants$platform$ProtocolFamily();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 89
            getstatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$ProtocolFamily:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jnr.constants.platform.ProtocolFamily.values:()[Ljnr/constants/platform/ProtocolFamily;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_APPLETALK:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 19
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_ATM:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 37
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_CCITT:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 13
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_CHAOS:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 7
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_CNT:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 24
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_COIP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 23
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_DATAKIT:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 12
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_DECnet:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 15
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_DLI:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 16
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_ECMA:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 11
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_HYLINK:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 18
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_IMPLINK:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iconst_5
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iconst_4
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_INET6:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 32
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_IPX:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 26
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_ISDN:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 30
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_ISO:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 9
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_KEY:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 31
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_LAT:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 17
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_LINK:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 21
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_LOCAL:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iconst_2
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_MAX:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 39
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_NATM:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 33
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_NDRV:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 29
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_NETBIOS:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 35
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_NETGRAPH:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 38
            iastore
        78: goto 80
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        79: pop
      StackMap locals:
      StackMap stack:
        80: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_NS:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 8
            iastore
        81: goto 83
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        82: pop
      StackMap locals:
      StackMap stack:
        83: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_OSI:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 10
            iastore
        84: goto 86
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        85: pop
      StackMap locals:
      StackMap stack:
        86: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_PIP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 28
            iastore
        87: goto 89
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        88: pop
      StackMap locals:
      StackMap stack:
        89: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_PPP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 36
            iastore
        90: goto 92
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        91: pop
      StackMap locals:
      StackMap stack:
        92: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_PUP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 6
            iastore
        93: goto 95
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        94: pop
      StackMap locals:
      StackMap stack:
        95: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_ROUTE:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 20
            iastore
        96: goto 98
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        97: pop
      StackMap locals:
      StackMap stack:
        98: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_RTIP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 27
            iastore
        99: goto 101
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       100: pop
      StackMap locals:
      StackMap stack:
       101: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_SIP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 25
            iastore
       102: goto 104
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       103: pop
      StackMap locals:
      StackMap stack:
       104: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_SNA:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 14
            iastore
       105: goto 107
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       106: pop
      StackMap locals:
      StackMap stack:
       107: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_SYSTEM:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 34
            iastore
       108: goto 110
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       109: pop
      StackMap locals:
      StackMap stack:
       110: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNIX:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iconst_3
            iastore
       111: goto 113
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       112: pop
      StackMap locals:
      StackMap stack:
       113: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_UNSPEC:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            iconst_1
            iastore
       114: goto 116
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       115: pop
      StackMap locals:
      StackMap stack:
       116: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.PF_XTP:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 22
            iastore
       117: goto 119
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       118: pop
      StackMap locals:
      StackMap stack:
       119: aload 0
            getstatic jnr.constants.platform.ProtocolFamily.__UNKNOWN_CONSTANT__:Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.ordinal:()I
            bipush 40
            iastore
       120: goto 122
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       121: pop
      StackMap locals:
      StackMap stack:
       122: aload 0
            dup
            putstatic org.jruby.ext.socket.RubySocket.$SWITCH_TABLE$jnr$constants$platform$ProtocolFamily:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError
          77    78      79  Class java.lang.NoSuchFieldError
          80    81      82  Class java.lang.NoSuchFieldError
          83    84      85  Class java.lang.NoSuchFieldError
          86    87      88  Class java.lang.NoSuchFieldError
          89    90      91  Class java.lang.NoSuchFieldError
          92    93      94  Class java.lang.NoSuchFieldError
          95    96      97  Class java.lang.NoSuchFieldError
          98    99     100  Class java.lang.NoSuchFieldError
         101   102     103  Class java.lang.NoSuchFieldError
         104   105     106  Class java.lang.NoSuchFieldError
         107   108     109  Class java.lang.NoSuchFieldError
         110   111     112  Class java.lang.NoSuchFieldError
         113   114     115  Class java.lang.NoSuchFieldError
         116   117     118  Class java.lang.NoSuchFieldError
         119   120     121  Class java.lang.NoSuchFieldError
}
SourceFile: "RubySocket.java"
NestMembers:
  org.jruby.ext.socket.RubySocket$1
InnerClasses:
  org.jruby.ext.socket.RubySocket$1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"Socket"}, parent = "BasicSocket", include = {"Socket::Constants"})