public final class freemarker.core._JavaVersions
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: freemarker.core._JavaVersions
super_class: java.lang.Object
{
private static final boolean IS_AT_LEAST_6;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final freemarker.core._Java6 JAVA_6;
descriptor: Lfreemarker/core/_Java6;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final boolean IS_AT_LEAST_8;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final freemarker.core._Java8 JAVA_8;
descriptor: Lfreemarker/core/_Java8;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=0
0: iconst_0
istore 0
start local 0 1: ldc "java.version"
aconst_null
invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 2: aload 1
ifnull 10
3: new freemarker.template.Version
dup
aload 1
invokespecial freemarker.template.Version.<init>:(Ljava/lang/String;)V
astore 2
start local 2 4: aload 2
invokevirtual freemarker.template.Version.getMajor:()I
iconst_1
if_icmpne 5
aload 2
invokevirtual freemarker.template.Version.getMinor:()I
bipush 6
if_icmpge 6
StackMap locals: int java.lang.String freemarker.template.Version
StackMap stack:
5: aload 2
invokevirtual freemarker.template.Version.getMajor:()I
iconst_1
if_icmpgt 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: istore 0
end local 2 8: goto 10
StackMap locals: int java.lang.String
StackMap stack: java.lang.Exception
9: pop
10: StackMap locals:
StackMap stack:
aload 1
ifnonnull 15
11: ldc "java.util.ServiceLoader"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
12: iconst_1
istore 0
13: goto 15
StackMap locals:
StackMap stack: java.lang.Exception
14: pop
15: StackMap locals:
StackMap stack:
iload 0
putstatic freemarker.core._JavaVersions.IS_AT_LEAST_6:Z
end local 1 end local 0 16: getstatic freemarker.core._JavaVersions.IS_AT_LEAST_6:Z
ifeq 25
17: ldc "freemarker.core._Java6Impl"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
ldc "INSTANCE"
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.core._Java6
astore 0
start local 0 18: goto 26
end local 0 StackMap locals:
StackMap stack: java.lang.Exception
19: astore 1
start local 1 20: ldc "freemarker.runtime"
invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
ldc "Failed to access Java 6 functionality"
aload 1
invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
21: goto 23
StackMap locals: top java.lang.Exception
StackMap stack: java.lang.Exception
22: pop
23: StackMap locals:
StackMap stack:
aconst_null
astore 0
end local 1 start local 0 24: goto 26
end local 0 25: StackMap locals:
StackMap stack:
aconst_null
astore 0
start local 0 26: StackMap locals: freemarker.core._Java6
StackMap stack:
aload 0
putstatic freemarker.core._JavaVersions.JAVA_6:Lfreemarker/core/_Java6;
end local 0 27: iconst_0
istore 0
start local 0 28: ldc "java.version"
aconst_null
invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 29: aload 1
ifnull 38
30: new freemarker.template.Version
dup
aload 1
invokespecial freemarker.template.Version.<init>:(Ljava/lang/String;)V
astore 2
start local 2 31: aload 2
invokevirtual freemarker.template.Version.getMajor:()I
iconst_1
if_icmpne 32
aload 2
invokevirtual freemarker.template.Version.getMinor:()I
bipush 8
if_icmpge 33
StackMap locals: int java.lang.String freemarker.template.Version
StackMap stack:
32: aload 2
invokevirtual freemarker.template.Version.getMajor:()I
iconst_1
if_icmpgt 33
iconst_0
goto 34
StackMap locals:
StackMap stack:
33: iconst_1
StackMap locals:
StackMap stack: int
34: istore 0
end local 2 35: goto 42
StackMap locals: int java.lang.String
StackMap stack: java.lang.Exception
36: pop
37: goto 42
38: StackMap locals:
StackMap stack:
ldc "java.time.Instant"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
39: iconst_1
istore 0
40: goto 42
StackMap locals:
StackMap stack: java.lang.Exception
41: pop
42: StackMap locals:
StackMap stack:
iload 0
putstatic freemarker.core._JavaVersions.IS_AT_LEAST_8:Z
end local 1 end local 0 43: getstatic freemarker.core._JavaVersions.IS_AT_LEAST_8:Z
ifeq 52
44: ldc "freemarker.core._Java8Impl"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
ldc "INSTANCE"
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.core._Java8
astore 0
start local 0 45: goto 53
end local 0 StackMap locals:
StackMap stack: java.lang.Exception
46: astore 1
start local 1 47: ldc "freemarker.runtime"
invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
ldc "Failed to access Java 8 functionality"
aload 1
invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
48: goto 50
StackMap locals: top java.lang.Exception
StackMap stack: java.lang.Exception
49: pop
50: StackMap locals:
StackMap stack:
aconst_null
astore 0
end local 1 start local 0 51: goto 53
end local 0 52: StackMap locals:
StackMap stack:
aconst_null
astore 0
start local 0 53: StackMap locals: freemarker.core._Java8
StackMap stack:
aload 0
putstatic freemarker.core._JavaVersions.JAVA_8:Lfreemarker/core/_Java8;
end local 0 54: return
LocalVariableTable:
Start End Slot Name Signature
1 16 0 result Z
2 16 1 vStr Ljava/lang/String;
4 8 2 v Lfreemarker/template/Version;
18 19 0 java6 Lfreemarker/core/_Java6;
24 25 0 java6 Lfreemarker/core/_Java6;
26 27 0 java6 Lfreemarker/core/_Java6;
20 24 1 e Ljava/lang/Exception;
28 43 0 result Z
29 43 1 vStr Ljava/lang/String;
31 35 2 v Lfreemarker/template/Version;
45 46 0 java8 Lfreemarker/core/_Java8;
51 52 0 java8 Lfreemarker/core/_Java8;
53 54 0 java8 Lfreemarker/core/_Java8;
47 51 1 e Ljava/lang/Exception;
Exception table:
from to target type
3 8 9 Class java.lang.Exception
11 13 14 Class java.lang.Exception
17 18 19 Class java.lang.Exception
20 21 22 Class java.lang.Exception
30 35 36 Class java.lang.Exception
38 40 41 Class java.lang.Exception
44 45 46 Class java.lang.Exception
47 48 49 Class java.lang.Exception
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
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/core/_JavaVersions;
}
SourceFile: "_JavaVersions.java"