public class com.netflix.hystrix.util.PlatformSpecific
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.netflix.hystrix.util.PlatformSpecific
super_class: java.lang.Object
{
private final com.netflix.hystrix.util.PlatformSpecific$Platform platform;
descriptor: Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static com.netflix.hystrix.util.PlatformSpecific INSTANCE;
descriptor: Lcom/netflix/hystrix/util/PlatformSpecific;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.netflix.hystrix.util.PlatformSpecific
dup
invokespecial com.netflix.hystrix.util.PlatformSpecific.<init>:()V
putstatic com.netflix.hystrix.util.PlatformSpecific.INSTANCE:Lcom/netflix/hystrix/util/PlatformSpecific;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.netflix.hystrix.util.PlatformSpecific.determinePlatformReflectively:()Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
putfield com.netflix.hystrix.util.PlatformSpecific.platform:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/util/PlatformSpecific;
public static boolean isAppEngineStandardEnvironment();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic com.netflix.hystrix.util.PlatformSpecific.INSTANCE:Lcom/netflix/hystrix/util/PlatformSpecific;
getfield com.netflix.hystrix.util.PlatformSpecific.platform:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.APPENGINE_STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isAppEngine();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic com.netflix.hystrix.util.PlatformSpecific.INSTANCE:Lcom/netflix/hystrix/util/PlatformSpecific;
getfield com.netflix.hystrix.util.PlatformSpecific.platform:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.APPENGINE_FLEXIBLE:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
if_acmpeq 1
getstatic com.netflix.hystrix.util.PlatformSpecific.INSTANCE:Lcom/netflix/hystrix/util/PlatformSpecific;
getfield com.netflix.hystrix.util.PlatformSpecific.platform:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.APPENGINE_STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
if_acmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static com.netflix.hystrix.util.PlatformSpecific$Platform determinePlatformReflectively();
descriptor: ()Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: ldc "com.google.appengine.runtime.environment"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 2
1: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
2: StackMap locals:
StackMap stack:
ldc "GAE_LONG_APP_ID"
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
ifnull 4
3: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.APPENGINE_FLEXIBLE:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
4: StackMap locals:
StackMap stack:
ldc "com.google.apphosting.api.ApiProxy"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
5: ldc "getCurrentEnvironment"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
6: aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
7: ifnull 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 0
start local 0 10: iload 0
ifeq 11
getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.APPENGINE_STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
goto 12
StackMap locals: int
StackMap stack:
11: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
StackMap locals:
StackMap stack: com.netflix.hystrix.util.PlatformSpecific$Platform
12: areturn
end local 0 13: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
14: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
15: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
pop
16: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
17: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
pop
18: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
19: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
20: getstatic com.netflix.hystrix.util.PlatformSpecific$Platform.STANDARD:Lcom/netflix/hystrix/util/PlatformSpecific$Platform;
areturn
LocalVariableTable:
Start End Slot Name Signature
10 13 0 isInsideAppengine Z
Exception table:
from to target type
4 12 13 Class java.lang.ClassNotFoundException
4 12 15 Class java.lang.reflect.InvocationTargetException
4 12 17 Class java.lang.IllegalAccessException
4 12 19 Class java.lang.NoSuchMethodException
public static java.util.concurrent.ThreadFactory getAppEngineThreadFactory();
descriptor: ()Ljava/util/concurrent/ThreadFactory;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: ldc "com.google.appengine.api.ThreadManager"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
1: ldc "currentRequestThreadFactory"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
2: aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
3: checkcast java.util.concurrent.ThreadFactory
4: areturn
5: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 0
start local 0 6: new java.lang.RuntimeException
dup
ldc "Couldn't invoke ThreadManager.currentRequestThreadFactory"
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 7: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 0
start local 0 8: new java.lang.RuntimeException
dup
ldc "Couldn't invoke ThreadManager.currentRequestThreadFactory"
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 9: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
astore 0
start local 0 10: new java.lang.RuntimeException
dup
ldc "Couldn't invoke ThreadManager.currentRequestThreadFactory"
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 0
start local 0 12: new java.lang.RuntimeException
dup
aload 0
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
6 7 0 e Ljava/lang/IllegalAccessException;
8 9 0 e Ljava/lang/ClassNotFoundException;
10 11 0 e Ljava/lang/NoSuchMethodException;
12 13 0 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
0 4 5 Class java.lang.IllegalAccessException
0 4 7 Class java.lang.ClassNotFoundException
0 4 9 Class java.lang.NoSuchMethodException
0 4 11 Class java.lang.reflect.InvocationTargetException
}
SourceFile: "PlatformSpecific.java"
NestMembers:
com.netflix.hystrix.util.PlatformSpecific$Platform
InnerClasses:
private final Platform = com.netflix.hystrix.util.PlatformSpecific$Platform of com.netflix.hystrix.util.PlatformSpecific