public final class org.apache.hive.common.util.CleanerUtil extends java.lang.Object
{
public static final boolean UNMAP_SUPPORTED;
public static final java.lang.String UNMAP_NOT_SUPPORTED_REASON;
private static final org.apache.hive.common.util.CleanerUtil$BufferCleaner CLEANER;
static final boolean $assertionsDisabled;
private void <init>()
{
org.apache.hive.common.util.CleanerUtil v;
v := @this: org.apache.hive.common.util.CleanerUtil;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static org.apache.hive.common.util.CleanerUtil$BufferCleaner getCleaner()
{
org.apache.hive.common.util.CleanerUtil$BufferCleaner v;
v = <org.apache.hive.common.util.CleanerUtil: org.apache.hive.common.util.CleanerUtil$BufferCleaner CLEANER>;
return v;
}
public static java.lang.Object unmapHackImpl()
{
java.lang.SecurityException v, v;
java.lang.reflect.Method v;
java.lang.invoke.MethodHandles$Lookup v;
java.lang.Exception v, v;
java.lang.invoke.MethodHandle v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hive.common.util.CleanerUtil$BufferCleaner v, v;
java.lang.String v, v;
java.lang.Class[] v, v;
java.lang.reflect.Field v;
java.lang.invoke.MethodType v, v, v, v, v, v, v;
java.lang.Class v, v, v, v, v, v, v, v, v;
java.lang.Object v;
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandles$Lookup lookup()>();
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("sun.misc.Unsafe");
v = <java.lang.Void: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class,java.lang.Class)>(v, class "Ljava/nio/ByteBuffer;");
v = virtualinvoke v.<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)>(v, "invokeCleaner", v);
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("theUnsafe");
virtualinvoke v.<java.lang.reflect.Field: void setAccessible(boolean)>(1);
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(null);
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodHandle bindTo(java.lang.Object)>(v);
v = staticinvoke <org.apache.hive.common.util.CleanerUtil: org.apache.hive.common.util.CleanerUtil$BufferCleaner newBufferCleaner(java.lang.Class,java.lang.invoke.MethodHandle)>(class "Ljava/nio/ByteBuffer;", v);
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.nio.DirectByteBuffer");
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("cleaner", v);
virtualinvoke v.<java.lang.reflect.Method: void setAccessible(boolean)>(1);
v = virtualinvoke v.<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method)>(v);
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodType type()>();
v = virtualinvoke v.<java.lang.invoke.MethodType: java.lang.Class returnType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class)>(v);
v = virtualinvoke v.<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)>(v, "clean", v);
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class,java.lang.Class)>(v, class "Ljava/lang/Object;");
v = virtualinvoke v.<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findStatic(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)>(class "Ljava/util/Objects;", "nonNull", v);
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class,java.lang.Class)>(v, v);
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType)>(v);
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandle constant(java.lang.Class,java.lang.Object)>(class "Ljava/lang/Void;", null);
v = <java.lang.Void: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class)>(v);
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType)>(v);
v = newarray (java.lang.Class)[1];
v[0] = v;
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle,int,java.lang.Class[])>(v, 0, v);
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle,java.lang.invoke.MethodHandle,java.lang.invoke.MethodHandle)>(v, v, v);
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle,java.lang.invoke.MethodHandle)>(v, v);
v = <java.lang.Void: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class,java.lang.Class)>(v, class "Ljava/nio/ByteBuffer;");
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType)>(v);
v = staticinvoke <org.apache.hive.common.util.CleanerUtil: org.apache.hive.common.util.CleanerUtil$BufferCleaner newBufferCleaner(java.lang.Class,java.lang.invoke.MethodHandle)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.SecurityException)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unmapping is not supported, because not all required permissions are given to the Hadoop JAR file: \u [Please grant at least the following permissions: RuntimePermission(\"accessClassInPackage.sun.misc\")  and ReflectPermission(\"suppressAccessChecks\")]");
return v;
label:
v := @caughtexception;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unmapping is not supported on this platform, because internal Java APIs are not compatible with this Hadoop version: \u0001");
return v;
catch java.lang.SecurityException from label to label with label;
catch java.lang.ReflectiveOperationException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.ReflectiveOperationException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.ReflectiveOperationException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
}
private static org.apache.hive.common.util.CleanerUtil$BufferCleaner newBufferCleaner(java.lang.Class, java.lang.invoke.MethodHandle)
{
java.lang.invoke.MethodHandle v;
org.apache.hive.common.util.CleanerUtil$BufferCleaner v;
java.lang.AssertionError v;
java.lang.invoke.MethodType v, v;
java.lang.Class v, v;
boolean v, v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.invoke.MethodHandle;
v = <org.apache.hive.common.util.CleanerUtil: boolean $assertionsDisabled>;
if v != 0 goto label;
v = <java.lang.Void: java.lang.Class TYPE>;
v = staticinvoke <java.lang.invoke.MethodType: java.lang.invoke.MethodType methodType(java.lang.Class,java.lang.Class)>(v, class "Ljava/nio/ByteBuffer;");
v = virtualinvoke v.<java.lang.invoke.MethodHandle: java.lang.invoke.MethodType type()>();
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = staticinvoke <org.apache.hive.common.util.CleanerUtil$lambda_newBufferCleaner_1__13: org.apache.hive.common.util.CleanerUtil$BufferCleaner bootstrap$(java.lang.Class,java.lang.invoke.MethodHandle)>(v, v);
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
java.security.PrivilegedAction v;
boolean v, v, v;
v = class "Lorg/apache/hive/common/util/CleanerUtil;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.apache.hive.common.util.CleanerUtil: boolean $assertionsDisabled> = v;
v = staticinvoke <org.apache.hive.common.util.CleanerUtil$unmapHackImpl__15: java.security.PrivilegedAction bootstrap$()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
v = v instanceof org.apache.hive.common.util.CleanerUtil$BufferCleaner;
if v == 0 goto label;
<org.apache.hive.common.util.CleanerUtil: org.apache.hive.common.util.CleanerUtil$BufferCleaner CLEANER> = v;
<org.apache.hive.common.util.CleanerUtil: boolean UNMAP_SUPPORTED> = 1;
<org.apache.hive.common.util.CleanerUtil: java.lang.String UNMAP_NOT_SUPPORTED_REASON> = null;
goto label;
label:
<org.apache.hive.common.util.CleanerUtil: org.apache.hive.common.util.CleanerUtil$BufferCleaner CLEANER> = null;
<org.apache.hive.common.util.CleanerUtil: boolean UNMAP_SUPPORTED> = 0;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
<org.apache.hive.common.util.CleanerUtil: java.lang.String UNMAP_NOT_SUPPORTED_REASON> = v;
label:
return;
}
}