public final class org.springframework.context.i18n.LocaleContextHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.springframework.context.i18n.LocaleContextHolder
  super_class: java.lang.Object
{
  private static final java.lang.ThreadLocal<org.springframework.context.i18n.LocaleContext> localeContextHolder;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/springframework/context/i18n/LocaleContext;>;

  private static final java.lang.ThreadLocal<org.springframework.context.i18n.LocaleContext> inheritableLocaleContextHolder;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/springframework/context/i18n/LocaleContext;>;

  private static java.util.Locale defaultLocale;
    descriptor: Ljava/util/Locale;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private static java.util.TimeZone defaultTimeZone;
    descriptor: Ljava/util/TimeZone;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 48
            new org.springframework.core.NamedThreadLocal
            dup
            ldc "LocaleContext"
            invokespecial org.springframework.core.NamedThreadLocal.<init>:(Ljava/lang/String;)V
         1: .line 47
            putstatic org.springframework.context.i18n.LocaleContextHolder.localeContextHolder:Ljava/lang/ThreadLocal;
         2: .line 51
            new org.springframework.core.NamedInheritableThreadLocal
            dup
            ldc "LocaleContext"
            invokespecial org.springframework.core.NamedInheritableThreadLocal.<init>:(Ljava/lang/String;)V
         3: .line 50
            putstatic org.springframework.context.i18n.LocaleContextHolder.inheritableLocaleContextHolder:Ljava/lang/ThreadLocal;
         4: .line 59
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.context.i18n.LocaleContextHolder this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            return
        end local 0 // org.springframework.context.i18n.LocaleContextHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/context/i18n/LocaleContextHolder;

  public static void resetLocaleContext();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 70
            getstatic org.springframework.context.i18n.LocaleContextHolder.localeContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         1: .line 71
            getstatic org.springframework.context.i18n.LocaleContextHolder.inheritableLocaleContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         2: .line 72
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setLocaleContext(org.springframework.context.i18n.LocaleContext);
    descriptor: (Lorg/springframework/context/i18n/LocaleContext;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.context.i18n.LocaleContext localeContext
         0: .line 85
            aload 0 /* localeContext */
            iconst_0
            invokestatic org.springframework.context.i18n.LocaleContextHolder.setLocaleContext:(Lorg/springframework/context/i18n/LocaleContext;Z)V
         1: .line 86
            return
        end local 0 // org.springframework.context.i18n.LocaleContext localeContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0  localeContext  Lorg/springframework/context/i18n/LocaleContext;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      localeContext  

  public static void setLocaleContext(org.springframework.context.i18n.LocaleContext, boolean);
    descriptor: (Lorg/springframework/context/i18n/LocaleContext;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.i18n.LocaleContext localeContext
        start local 1 // boolean inheritable
         0: .line 100
            aload 0 /* localeContext */
            ifnonnull 3
         1: .line 101
            invokestatic org.springframework.context.i18n.LocaleContextHolder.resetLocaleContext:()V
         2: .line 102
            goto 9
         3: .line 104
      StackMap locals:
      StackMap stack:
            iload 1 /* inheritable */
            ifeq 7
         4: .line 105
            getstatic org.springframework.context.i18n.LocaleContextHolder.inheritableLocaleContextHolder:Ljava/lang/ThreadLocal;
            aload 0 /* localeContext */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         5: .line 106
            getstatic org.springframework.context.i18n.LocaleContextHolder.localeContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         6: .line 107
            goto 9
         7: .line 109
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.context.i18n.LocaleContextHolder.localeContextHolder:Ljava/lang/ThreadLocal;
            aload 0 /* localeContext */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         8: .line 110
            getstatic org.springframework.context.i18n.LocaleContextHolder.inheritableLocaleContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         9: .line 113
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean inheritable
        end local 0 // org.springframework.context.i18n.LocaleContext localeContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0  localeContext  Lorg/springframework/context/i18n/LocaleContext;
            0   10     1    inheritable  Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      localeContext  
      inheritable    

  public static org.springframework.context.i18n.LocaleContext getLocaleContext();
    descriptor: ()Lorg/springframework/context/i18n/LocaleContext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 121
            getstatic org.springframework.context.i18n.LocaleContextHolder.localeContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.springframework.context.i18n.LocaleContext
            astore 0 /* localeContext */
        start local 0 // org.springframework.context.i18n.LocaleContext localeContext
         1: .line 122
            aload 0 /* localeContext */
            ifnonnull 3
         2: .line 123
            getstatic org.springframework.context.i18n.LocaleContextHolder.inheritableLocaleContextHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.springframework.context.i18n.LocaleContext
            astore 0 /* localeContext */
         3: .line 125
      StackMap locals: org.springframework.context.i18n.LocaleContext
      StackMap stack:
            aload 0 /* localeContext */
            areturn
        end local 0 // org.springframework.context.i18n.LocaleContext localeContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1    4     0  localeContext  Lorg/springframework/context/i18n/LocaleContext;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public static void setLocale(java.util.Locale);
    descriptor: (Ljava/util/Locale;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 139
            aload 0 /* locale */
            iconst_0
            invokestatic org.springframework.context.i18n.LocaleContextHolder.setLocale:(Ljava/util/Locale;Z)V
         1: .line 140
            return
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  locale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      locale  

  public static void setLocale(java.util.Locale, boolean);
    descriptor: (Ljava/util/Locale;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.util.Locale locale
        start local 1 // boolean inheritable
         0: .line 154
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getLocaleContext:()Lorg/springframework/context/i18n/LocaleContext;
            astore 2 /* localeContext */
        start local 2 // org.springframework.context.i18n.LocaleContext localeContext
         1: .line 155
            aload 2 /* localeContext */
            instanceof org.springframework.context.i18n.TimeZoneAwareLocaleContext
            ifeq 3
         2: .line 156
            aload 2 /* localeContext */
            checkcast org.springframework.context.i18n.TimeZoneAwareLocaleContext
            invokeinterface org.springframework.context.i18n.TimeZoneAwareLocaleContext.getTimeZone:()Ljava/util/TimeZone;
            goto 4
      StackMap locals: org.springframework.context.i18n.LocaleContext
      StackMap stack:
         3: aconst_null
         4: .line 155
      StackMap locals:
      StackMap stack: java.util.TimeZone
            astore 3 /* timeZone */
        start local 3 // java.util.TimeZone timeZone
         5: .line 157
            aload 3 /* timeZone */
            ifnull 8
         6: .line 158
            new org.springframework.context.i18n.SimpleTimeZoneAwareLocaleContext
            dup
            aload 0 /* locale */
            aload 3 /* timeZone */
            invokespecial org.springframework.context.i18n.SimpleTimeZoneAwareLocaleContext.<init>:(Ljava/util/Locale;Ljava/util/TimeZone;)V
            astore 2 /* localeContext */
         7: .line 159
            goto 12
         8: .line 160
      StackMap locals: java.util.TimeZone
      StackMap stack:
            aload 0 /* locale */
            ifnull 11
         9: .line 161
            new org.springframework.context.i18n.SimpleLocaleContext
            dup
            aload 0 /* locale */
            invokespecial org.springframework.context.i18n.SimpleLocaleContext.<init>:(Ljava/util/Locale;)V
            astore 2 /* localeContext */
        10: .line 162
            goto 12
        11: .line 164
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* localeContext */
        12: .line 166
      StackMap locals:
      StackMap stack:
            aload 2 /* localeContext */
            iload 1 /* inheritable */
            invokestatic org.springframework.context.i18n.LocaleContextHolder.setLocaleContext:(Lorg/springframework/context/i18n/LocaleContext;Z)V
        13: .line 167
            return
        end local 3 // java.util.TimeZone timeZone
        end local 2 // org.springframework.context.i18n.LocaleContext localeContext
        end local 1 // boolean inheritable
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0         locale  Ljava/util/Locale;
            0   14     1    inheritable  Z
            1   14     2  localeContext  Lorg/springframework/context/i18n/LocaleContext;
            5   14     3       timeZone  Ljava/util/TimeZone;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      locale       
      inheritable  

  public static void setDefaultLocale(java.util.Locale);
    descriptor: (Ljava/util/Locale;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 184
            aload 0 /* locale */
            putstatic org.springframework.context.i18n.LocaleContextHolder.defaultLocale:Ljava/util/Locale;
         1: .line 185
            return
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  locale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      locale  

  public static java.util.Locale getLocale();
    descriptor: ()Ljava/util/Locale;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 205
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getLocaleContext:()Lorg/springframework/context/i18n/LocaleContext;
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getLocale:(Lorg/springframework/context/i18n/LocaleContext;)Ljava/util/Locale;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.Locale getLocale(org.springframework.context.i18n.LocaleContext);
    descriptor: (Lorg/springframework/context/i18n/LocaleContext;)Ljava/util/Locale;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.context.i18n.LocaleContext localeContext
         0: .line 223
            aload 0 /* localeContext */
            ifnull 4
         1: .line 224
            aload 0 /* localeContext */
            invokeinterface org.springframework.context.i18n.LocaleContext.getLocale:()Ljava/util/Locale;
            astore 1 /* locale */
        start local 1 // java.util.Locale locale
         2: .line 225
            aload 1 /* locale */
            ifnull 4
         3: .line 226
            aload 1 /* locale */
            areturn
        end local 1 // java.util.Locale locale
         4: .line 229
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.context.i18n.LocaleContextHolder.defaultLocale:Ljava/util/Locale;
            ifnull 5
            getstatic org.springframework.context.i18n.LocaleContextHolder.defaultLocale:Ljava/util/Locale;
            goto 6
      StackMap locals:
      StackMap stack:
         5: invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
      StackMap locals:
      StackMap stack: java.util.Locale
         6: areturn
        end local 0 // org.springframework.context.i18n.LocaleContext localeContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  localeContext  Lorg/springframework/context/i18n/LocaleContext;
            2    4     1         locale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      localeContext  

  public static void setTimeZone(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.TimeZone timeZone
         0: .line 243
            aload 0 /* timeZone */
            iconst_0
            invokestatic org.springframework.context.i18n.LocaleContextHolder.setTimeZone:(Ljava/util/TimeZone;Z)V
         1: .line 244
            return
        end local 0 // java.util.TimeZone timeZone
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  timeZone  Ljava/util/TimeZone;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      timeZone  

  public static void setTimeZone(java.util.TimeZone, boolean);
    descriptor: (Ljava/util/TimeZone;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.util.TimeZone timeZone
        start local 1 // boolean inheritable
         0: .line 258
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getLocaleContext:()Lorg/springframework/context/i18n/LocaleContext;
            astore 2 /* localeContext */
        start local 2 // org.springframework.context.i18n.LocaleContext localeContext
         1: .line 259
            aload 2 /* localeContext */
            ifnull 2
            aload 2 /* localeContext */
            invokeinterface org.springframework.context.i18n.LocaleContext.getLocale:()Ljava/util/Locale;
            goto 3
      StackMap locals: org.springframework.context.i18n.LocaleContext
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.util.Locale
         3: astore 3 /* locale */
        start local 3 // java.util.Locale locale
         4: .line 260
            aload 0 /* timeZone */
            ifnull 7
         5: .line 261
            new org.springframework.context.i18n.SimpleTimeZoneAwareLocaleContext
            dup
            aload 3 /* locale */
            aload 0 /* timeZone */
            invokespecial org.springframework.context.i18n.SimpleTimeZoneAwareLocaleContext.<init>:(Ljava/util/Locale;Ljava/util/TimeZone;)V
            astore 2 /* localeContext */
         6: .line 262
            goto 11
         7: .line 263
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 3 /* locale */
            ifnull 10
         8: .line 264
            new org.springframework.context.i18n.SimpleLocaleContext
            dup
            aload 3 /* locale */
            invokespecial org.springframework.context.i18n.SimpleLocaleContext.<init>:(Ljava/util/Locale;)V
            astore 2 /* localeContext */
         9: .line 265
            goto 11
        10: .line 267
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* localeContext */
        11: .line 269
      StackMap locals:
      StackMap stack:
            aload 2 /* localeContext */
            iload 1 /* inheritable */
            invokestatic org.springframework.context.i18n.LocaleContextHolder.setLocaleContext:(Lorg/springframework/context/i18n/LocaleContext;Z)V
        12: .line 270
            return
        end local 3 // java.util.Locale locale
        end local 2 // org.springframework.context.i18n.LocaleContext localeContext
        end local 1 // boolean inheritable
        end local 0 // java.util.TimeZone timeZone
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0       timeZone  Ljava/util/TimeZone;
            0   13     1    inheritable  Z
            1   13     2  localeContext  Lorg/springframework/context/i18n/LocaleContext;
            4   13     3         locale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      timeZone     
      inheritable  

  public static void setDefaultTimeZone(java.util.TimeZone);
    descriptor: (Ljava/util/TimeZone;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.TimeZone timeZone
         0: .line 287
            aload 0 /* timeZone */
            putstatic org.springframework.context.i18n.LocaleContextHolder.defaultTimeZone:Ljava/util/TimeZone;
         1: .line 288
            return
        end local 0 // java.util.TimeZone timeZone
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  timeZone  Ljava/util/TimeZone;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      timeZone  

  public static java.util.TimeZone getTimeZone();
    descriptor: ()Ljava/util/TimeZone;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 309
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getLocaleContext:()Lorg/springframework/context/i18n/LocaleContext;
            invokestatic org.springframework.context.i18n.LocaleContextHolder.getTimeZone:(Lorg/springframework/context/i18n/LocaleContext;)Ljava/util/TimeZone;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.TimeZone getTimeZone(org.springframework.context.i18n.LocaleContext);
    descriptor: (Lorg/springframework/context/i18n/LocaleContext;)Ljava/util/TimeZone;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.context.i18n.LocaleContext localeContext
         0: .line 327
            aload 0 /* localeContext */
            instanceof org.springframework.context.i18n.TimeZoneAwareLocaleContext
            ifeq 4
         1: .line 328
            aload 0 /* localeContext */
            checkcast org.springframework.context.i18n.TimeZoneAwareLocaleContext
            invokeinterface org.springframework.context.i18n.TimeZoneAwareLocaleContext.getTimeZone:()Ljava/util/TimeZone;
            astore 1 /* timeZone */
        start local 1 // java.util.TimeZone timeZone
         2: .line 329
            aload 1 /* timeZone */
            ifnull 4
         3: .line 330
            aload 1 /* timeZone */
            areturn
        end local 1 // java.util.TimeZone timeZone
         4: .line 333
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.context.i18n.LocaleContextHolder.defaultTimeZone:Ljava/util/TimeZone;
            ifnull 5
            getstatic org.springframework.context.i18n.LocaleContextHolder.defaultTimeZone:Ljava/util/TimeZone;
            goto 6
      StackMap locals:
      StackMap stack:
         5: invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
      StackMap locals:
      StackMap stack: java.util.TimeZone
         6: areturn
        end local 0 // org.springframework.context.i18n.LocaleContext localeContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  localeContext  Lorg/springframework/context/i18n/LocaleContext;
            2    4     1       timeZone  Ljava/util/TimeZone;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      localeContext  
}
SourceFile: "LocaleContextHolder.java"