class org.jruby.util.io.FilenoUtil$ReflectiveAccess
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.util.io.FilenoUtil$ReflectiveAccess
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodHandles$Lookup LOOKUP;
descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.Predicate<java.lang.Object> SEL_CH_IMPL;
descriptor: Ljava/util/function/Predicate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/Predicate<Ljava/lang/Object;>;
private static final java.lang.invoke.MethodHandle SEL_CH_IMPL_GET_FD_HANDLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.Function<java.lang.Object, java.io.FileDescriptor> SEL_CH_IMPL_GET_FD;
descriptor: Ljava/util/function/Function;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/Function<Ljava/lang/Object;Ljava/io/FileDescriptor;>;
private static final java.util.function.Predicate<java.lang.Object> FILE_CHANNEL_IMPL;
descriptor: Ljava/util/function/Predicate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/Predicate<Ljava/lang/Object;>;
private static final java.lang.invoke.MethodHandle FILE_CHANNEL_IMPL_GET_FD_HANDLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.Function<java.lang.Object, java.io.FileDescriptor> FILE_CHANNEL_IMPL_GET_FD;
descriptor: Ljava/util/function/Function;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/Function<Ljava/lang/Object;Ljava/io/FileDescriptor;>;
private static final java.lang.invoke.MethodHandle FILE_DESCRIPTOR_SET_FILENO_HANDLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.ObjIntConsumer<java.io.FileDescriptor> FILE_DESCRIPTOR_SET_FILENO;
descriptor: Ljava/util/function/ObjIntConsumer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/ObjIntConsumer<Ljava/io/FileDescriptor;>;
private static final java.lang.invoke.MethodHandle FILE_DESCRIPTOR_GET_FILENO_HANDLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.ToIntFunction<java.io.FileDescriptor> FILE_DESCRIPTOR_GET_FILENO;
descriptor: Ljava/util/function/ToIntFunction;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/function/ToIntFunction<Ljava/io/FileDescriptor;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=0
0: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
1: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/util/io/FilenoUtil$ReflectiveAccess.selChImplGetFD(Ljava/lang/Object;)Ljava/io/FileDescriptor; (6)
(Ljava/lang/Object;)Ljava/io/FileDescriptor;
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.SEL_CH_IMPL_GET_FD:Ljava/util/function/Function;
2: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/util/io/FilenoUtil$ReflectiveAccess.fileChannelImplGetFD(Ljava/lang/Object;)Ljava/io/FileDescriptor; (6)
(Ljava/lang/Object;)Ljava/io/FileDescriptor;
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_CHANNEL_IMPL_GET_FD:Ljava/util/function/Function;
3: invokedynamic accept()Ljava/util/function/ObjIntConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;I)V
org/jruby/util/io/FilenoUtil$ReflectiveAccess.fileDescriptorSetFileno(Ljava/io/FileDescriptor;I)V (6)
(Ljava/io/FileDescriptor;I)V
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_SET_FILENO:Ljava/util/function/ObjIntConsumer;
4: invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)I
org/jruby/util/io/FilenoUtil$ReflectiveAccess.fileDescriptorGetFileno(Ljava/io/FileDescriptor;)I (6)
(Ljava/io/FileDescriptor;)I
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_GET_FILENO:Ljava/util/function/ToIntFunction;
5: aconst_null
astore 0
start local 0 6: aconst_null
astore 1
start local 1 7: ldc "sun.nio.ch.SelChImpl"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 8: aload 2
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Ljava/lang/Object;)Z
astore 1
9: aload 2
ldc "getFD"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 10: aload 4
ldc Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokestatic org.jruby.javasupport.JavaUtil.getHandleSafe:(Ljava/lang/reflect/Method;Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
astore 0
end local 4 end local 2 11: goto 13
StackMap locals: java.lang.invoke.MethodHandle java.util.function.Predicate
StackMap stack: java.lang.Throwable
12: pop
13: StackMap locals:
StackMap stack:
aload 1
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.SEL_CH_IMPL:Ljava/util/function/Predicate;
14: aload 0
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.SEL_CH_IMPL_GET_FD_HANDLE:Ljava/lang/invoke/MethodHandle;
15: aconst_null
astore 2
start local 2 16: aconst_null
astore 3
start local 3 17: ldc "sun.nio.ch.FileChannelImpl"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 18: aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Ljava/lang/Object;)Z
astore 2
19: aload 4
ldc "fd"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 6
start local 6 20: aload 6
ldc Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokestatic org.jruby.javasupport.JavaUtil.getGetterSafe:(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
astore 3
end local 6 end local 4 21: goto 23
StackMap locals: java.lang.invoke.MethodHandle java.util.function.Predicate java.util.function.Predicate java.lang.invoke.MethodHandle
StackMap stack: java.lang.Throwable
22: pop
23: StackMap locals:
StackMap stack:
aload 2
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_CHANNEL_IMPL:Ljava/util/function/Predicate;
24: aload 3
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_CHANNEL_IMPL_GET_FD_HANDLE:Ljava/lang/invoke/MethodHandle;
25: aconst_null
astore 4
start local 4 26: aconst_null
astore 5
start local 5 27: ldc Ljava/io/FileDescriptor;
ldc "fd"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 6
start local 6 28: aload 6
ldc Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokestatic org.jruby.javasupport.JavaUtil.getGetterSafe:(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
astore 4
29: aload 6
ldc Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokestatic org.jruby.javasupport.JavaUtil.getSetterSafe:(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
astore 5
end local 6 30: goto 32
StackMap locals: java.lang.invoke.MethodHandle java.util.function.Predicate java.util.function.Predicate java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack: java.lang.Throwable
31: pop
32: StackMap locals:
StackMap stack:
aload 4
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_GET_FILENO_HANDLE:Ljava/lang/invoke/MethodHandle;
33: aload 5
putstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_SET_FILENO_HANDLE:Ljava/lang/invoke/MethodHandle;
34: aload 0
ifnull 35
aload 3
ifnull 35
aload 4
ifnonnull 42
35: StackMap locals:
StackMap stack:
ldc Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
invokestatic com.headius.backport9.modules.Modules.getModule:(Ljava/lang/Class;)Lcom/headius/backport9/modules/Module;
astore 6
start local 6 36: aload 6
invokeinterface com.headius.backport9.modules.Module.getName:()Ljava/lang/String;
astore 7
start local 7 37: aload 7
ifnonnull 39
38: ldc "ALL-UNNAMED"
astore 7
39: StackMap locals: com.headius.backport9.modules.Module java.lang.String
StackMap stack:
getstatic org.jruby.util.io.FilenoUtil.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Native subprocess control requires open access to the JDK IO subsystem\nPass '--add-opens java.base/sun.nio.ch="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
40: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " --add-opens java.base/java.io="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' to enable."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
41: invokeinterface org.jruby.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 42: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
6 42 0 selChImplGetFD Ljava/lang/invoke/MethodHandle;
7 42 1 isSelChImpl Ljava/util/function/Predicate;
8 11 2 selChImpl Ljava/lang/Class;
10 11 4 getFD Ljava/lang/reflect/Method;
16 42 2 isFileChannelImpl Ljava/util/function/Predicate;
17 42 3 fileChannelGetFD Ljava/lang/invoke/MethodHandle;
18 21 4 fileChannelImpl Ljava/lang/Class;
20 21 6 fd Ljava/lang/reflect/Field;
26 42 4 fdGetFileno Ljava/lang/invoke/MethodHandle;
27 42 5 fdSetFileno Ljava/lang/invoke/MethodHandle;
28 30 6 fd Ljava/lang/reflect/Field;
36 42 6 module Lcom/headius/backport9/modules/Module;
37 42 7 moduleName Ljava/lang/String;
Exception table:
from to target type
7 11 12 Class java.lang.Throwable
17 21 22 Class java.lang.Throwable
27 30 31 Class java.lang.Throwable
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/io/FilenoUtil$ReflectiveAccess;
private static java.io.FileDescriptor fileChannelImplGetFD(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/io/FileDescriptor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_CHANNEL_IMPL_GET_FD_HANDLE:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljava/lang/Object;)Ljava/io/FileDescriptor;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 3: aload 1
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
4: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 obj Ljava/lang/Object;
3 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
obj
private static int fileDescriptorGetFileno(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_GET_FILENO_HANDLE:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljava/io/FileDescriptor;)I
1: ireturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 3: aload 1
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
4: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 obj Ljava/io/FileDescriptor;
3 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
obj
private static void fileDescriptorSetFileno(java.io.FileDescriptor, int);
descriptor: (Ljava/io/FileDescriptor;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.FILE_DESCRIPTOR_SET_FILENO_HANDLE:Ljava/lang/invoke/MethodHandle;
aload 0
iload 1
invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljava/io/FileDescriptor;I)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: aload 2
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 obj Ljava/io/FileDescriptor;
0 5 1 i I
3 4 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
obj
i
private static java.io.FileDescriptor selChImplGetFD(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/io/FileDescriptor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.util.io.FilenoUtil$ReflectiveAccess.SEL_CH_IMPL_GET_FD_HANDLE:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.invoke:(Ljava/lang/Object;)Ljava/io/FileDescriptor;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 3: aload 1
invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
4: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 obj Ljava/lang/Object;
3 5 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
obj
}
SourceFile: "FilenoUtil.java"
NestHost: org.jruby.util.io.FilenoUtil
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private ReflectiveAccess = org.jruby.util.io.FilenoUtil$ReflectiveAccess of org.jruby.util.io.FilenoUtil