public abstract class org.springframework.context.support.AbstractMessageSource extends org.springframework.context.support.MessageSourceSupport implements org.springframework.context.HierarchicalMessageSource
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.context.support.AbstractMessageSource
  super_class: org.springframework.context.support.MessageSourceSupport
{
  private org.springframework.context.MessageSource parentMessageSource;
    descriptor: Lorg/springframework/context/MessageSource;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.util.Properties commonMessages;
    descriptor: Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private boolean useCodeAsDefaultMessage;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.context.support.AbstractMessageSource this
         0: .line 65
            aload 0 /* this */
            invokespecial org.springframework.context.support.MessageSourceSupport.<init>:()V
         1: .line 73
            aload 0 /* this */
            iconst_0
            putfield org.springframework.context.support.AbstractMessageSource.useCodeAsDefaultMessage:Z
         2: .line 65
            return
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/context/support/AbstractMessageSource;

  public void setParentMessageSource(org.springframework.context.MessageSource);
    descriptor: (Lorg/springframework/context/MessageSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // org.springframework.context.MessageSource parent
         0: .line 78
            aload 0 /* this */
            aload 1 /* parent */
            putfield org.springframework.context.support.AbstractMessageSource.parentMessageSource:Lorg/springframework/context/MessageSource;
         1: .line 79
            return
        end local 1 // org.springframework.context.MessageSource parent
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/springframework/context/support/AbstractMessageSource;
            0    2     1  parent  Lorg/springframework/context/MessageSource;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      parent  

  public org.springframework.context.MessageSource getParentMessageSource();
    descriptor: ()Lorg/springframework/context/MessageSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.context.support.AbstractMessageSource this
         0: .line 84
            aload 0 /* this */
            getfield org.springframework.context.support.AbstractMessageSource.parentMessageSource:Lorg/springframework/context/MessageSource;
            areturn
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/context/support/AbstractMessageSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setCommonMessages(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.util.Properties commonMessages
         0: .line 94
            aload 0 /* this */
            aload 1 /* commonMessages */
            putfield org.springframework.context.support.AbstractMessageSource.commonMessages:Ljava/util/Properties;
         1: .line 95
            return
        end local 1 // java.util.Properties commonMessages
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/springframework/context/support/AbstractMessageSource;
            0    2     1  commonMessages  Ljava/util/Properties;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      commonMessages  

  protected java.util.Properties getCommonMessages();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.context.support.AbstractMessageSource this
         0: .line 102
            aload 0 /* this */
            getfield org.springframework.context.support.AbstractMessageSource.commonMessages:Ljava/util/Properties;
            areturn
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/context/support/AbstractMessageSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setUseCodeAsDefaultMessage(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // boolean useCodeAsDefaultMessage
         0: .line 123
            aload 0 /* this */
            iload 1 /* useCodeAsDefaultMessage */
            putfield org.springframework.context.support.AbstractMessageSource.useCodeAsDefaultMessage:Z
         1: .line 124
            return
        end local 1 // boolean useCodeAsDefaultMessage
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lorg/springframework/context/support/AbstractMessageSource;
            0    2     1  useCodeAsDefaultMessage  Z
    MethodParameters:
                         Name  Flags
      useCodeAsDefaultMessage  

  protected boolean isUseCodeAsDefaultMessage();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.context.support.AbstractMessageSource this
         0: .line 135
            aload 0 /* this */
            getfield org.springframework.context.support.AbstractMessageSource.useCodeAsDefaultMessage:Z
            ireturn
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/context/support/AbstractMessageSource;

  public final java.lang.String getMessage(java.lang.String, java.lang.Object[], java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
        start local 2 // java.lang.Object[] args
        start local 3 // java.lang.String defaultMessage
        start local 4 // java.util.Locale locale
         0: .line 141
            aload 0 /* this */
            aload 1 /* code */
            aload 2 /* args */
            aload 4 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessageInternal:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         1: .line 142
            aload 5 /* msg */
            ifnull 3
         2: .line 143
            aload 5 /* msg */
            areturn
         3: .line 145
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* defaultMessage */
            ifnonnull 5
         4: .line 146
            aload 0 /* this */
            aload 1 /* code */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getDefaultMessage:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         5: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* defaultMessage */
            aload 2 /* args */
            aload 4 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.renderDefaultMessage:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 5 // java.lang.String msg
        end local 4 // java.util.Locale locale
        end local 3 // java.lang.String defaultMessage
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/springframework/context/support/AbstractMessageSource;
            0    6     1            code  Ljava/lang/String;
            0    6     2            args  [Ljava/lang/Object;
            0    6     3  defaultMessage  Ljava/lang/String;
            0    6     4          locale  Ljava/util/Locale;
            1    6     5             msg  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
      3:
    MethodParameters:
                Name  Flags
      code            
      args            
      defaultMessage  
      locale          

  public final java.lang.String getMessage(java.lang.String, java.lang.Object[], java.util.Locale);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
        start local 2 // java.lang.Object[] args
        start local 3 // java.util.Locale locale
         0: .line 153
            aload 0 /* this */
            aload 1 /* code */
            aload 2 /* args */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessageInternal:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         1: .line 154
            aload 4 /* msg */
            ifnull 3
         2: .line 155
            aload 4 /* msg */
            areturn
         3: .line 157
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* code */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getDefaultMessage:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* fallback */
        start local 5 // java.lang.String fallback
         4: .line 158
            aload 5 /* fallback */
            ifnull 6
         5: .line 159
            aload 5 /* fallback */
            areturn
         6: .line 161
      StackMap locals: java.lang.String
      StackMap stack:
            new org.springframework.context.NoSuchMessageException
            dup
            aload 1 /* code */
            aload 3 /* locale */
            invokespecial org.springframework.context.NoSuchMessageException.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            athrow
        end local 5 // java.lang.String fallback
        end local 4 // java.lang.String msg
        end local 3 // java.util.Locale locale
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/context/support/AbstractMessageSource;
            0    7     1      code  Ljava/lang/String;
            0    7     2      args  [Ljava/lang/Object;
            0    7     3    locale  Ljava/util/Locale;
            1    7     4       msg  Ljava/lang/String;
            4    7     5  fallback  Ljava/lang/String;
    Exceptions:
      throws org.springframework.context.NoSuchMessageException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
        Name  Flags
      code    
      args    
      locale  

  public final java.lang.String getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale);
    descriptor: (Lorg/springframework/context/MessageSourceResolvable;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // org.springframework.context.MessageSourceResolvable resolvable
        start local 2 // java.util.Locale locale
         0: .line 166
            aload 1 /* resolvable */
            invokeinterface org.springframework.context.MessageSourceResolvable.getCodes:()[Ljava/lang/String;
            astore 3 /* codes */
        start local 3 // java.lang.String[] codes
         1: .line 167
            aload 3 /* codes */
            ifnull 9
         2: .line 168
            aload 3 /* codes */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.springframework.context.support.AbstractMessageSource org.springframework.context.MessageSourceResolvable java.util.Locale java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* code */
        start local 4 // java.lang.String code
         4: .line 169
            aload 0 /* this */
            aload 4 /* code */
            aload 1 /* resolvable */
            invokeinterface org.springframework.context.MessageSourceResolvable.getArguments:()[Ljava/lang/Object;
            aload 2 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessageInternal:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            astore 8 /* message */
        start local 8 // java.lang.String message
         5: .line 170
            aload 8 /* message */
            ifnull 7
         6: .line 171
            aload 8 /* message */
            areturn
        end local 8 // java.lang.String message
        end local 4 // java.lang.String code
         7: .line 168
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 3
         9: .line 175
      StackMap locals: org.springframework.context.support.AbstractMessageSource org.springframework.context.MessageSourceResolvable java.util.Locale java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resolvable */
            aload 2 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getDefaultMessage:(Lorg/springframework/context/MessageSourceResolvable;Ljava/util/Locale;)Ljava/lang/String;
            astore 4 /* defaultMessage */
        start local 4 // java.lang.String defaultMessage
        10: .line 176
            aload 4 /* defaultMessage */
            ifnull 12
        11: .line 177
            aload 4 /* defaultMessage */
            areturn
        12: .line 179
      StackMap locals: java.lang.String
      StackMap stack:
            new org.springframework.context.NoSuchMessageException
            dup
            aload 3 /* codes */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 13
            aload 3 /* codes */
            aload 3 /* codes */
            arraylength
            iconst_1
            isub
            aaload
            goto 14
      StackMap locals: org.springframework.context.support.AbstractMessageSource org.springframework.context.MessageSourceResolvable java.util.Locale java.lang.String[] java.lang.String
      StackMap stack: new 12 new 12
        13: ldc ""
      StackMap locals: org.springframework.context.support.AbstractMessageSource org.springframework.context.MessageSourceResolvable java.util.Locale java.lang.String[] java.lang.String
      StackMap stack: new 12 new 12 java.lang.String
        14: aload 2 /* locale */
            invokespecial org.springframework.context.NoSuchMessageException.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            athrow
        end local 4 // java.lang.String defaultMessage
        end local 3 // java.lang.String[] codes
        end local 2 // java.util.Locale locale
        end local 1 // org.springframework.context.MessageSourceResolvable resolvable
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/springframework/context/support/AbstractMessageSource;
            0   15     1      resolvable  Lorg/springframework/context/MessageSourceResolvable;
            0   15     2          locale  Ljava/util/Locale;
            1   15     3           codes  [Ljava/lang/String;
            4    7     4            code  Ljava/lang/String;
            5    7     8         message  Ljava/lang/String;
           10   15     4  defaultMessage  Ljava/lang/String;
    Exceptions:
      throws org.springframework.context.NoSuchMessageException
    MethodParameters:
            Name  Flags
      resolvable  
      locale      

  protected java.lang.String getMessageInternal(java.lang.String, java.lang.Object[], java.util.Locale);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
        start local 2 // java.lang.Object[] args
        start local 3 // java.util.Locale locale
         0: .line 199
            aload 1 /* code */
            ifnonnull 2
         1: .line 200
            aconst_null
            areturn
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 3 /* locale */
            ifnonnull 4
         3: .line 203
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            astore 3 /* locale */
         4: .line 205
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            astore 4 /* argsToUse */
        start local 4 // java.lang.Object[] argsToUse
         5: .line 207
            aload 0 /* this */
            invokevirtual org.springframework.context.support.AbstractMessageSource.isAlwaysUseMessageFormat:()Z
            ifne 9
            aload 2 /* args */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 9
         6: .line 212
            aload 0 /* this */
            aload 1 /* code */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.resolveCodeWithoutArguments:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
         7: .line 213
            aload 5 /* message */
            ifnull 17
         8: .line 214
            aload 5 /* message */
            areturn
        end local 5 // java.lang.String message
         9: .line 222
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* args */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.resolveArguments:([Ljava/lang/Object;Ljava/util/Locale;)[Ljava/lang/Object;
            astore 4 /* argsToUse */
        10: .line 224
            aload 0 /* this */
            aload 1 /* code */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.resolveCode:(Ljava/lang/String;Ljava/util/Locale;)Ljava/text/MessageFormat;
            astore 5 /* messageFormat */
        start local 5 // java.text.MessageFormat messageFormat
        11: .line 225
            aload 5 /* messageFormat */
            ifnull 17
        12: .line 226
            aload 5 /* messageFormat */
            dup
            astore 6
            monitorenter
        13: .line 227
            aload 5 /* messageFormat */
            aload 4 /* argsToUse */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aload 6
            monitorexit
        14: areturn
        15: .line 226
      StackMap locals: org.springframework.context.support.AbstractMessageSource java.lang.String java.lang.Object[] java.util.Locale java.lang.Object[] java.text.MessageFormat java.text.MessageFormat
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        16: athrow
        end local 5 // java.text.MessageFormat messageFormat
        17: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getCommonMessages:()Ljava/util/Properties;
            astore 5 /* commonMessages */
        start local 5 // java.util.Properties commonMessages
        18: .line 234
            aload 5 /* commonMessages */
            ifnull 22
        19: .line 235
            aload 5 /* commonMessages */
            aload 1 /* code */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* commonMessage */
        start local 6 // java.lang.String commonMessage
        20: .line 236
            aload 6 /* commonMessage */
            ifnull 22
        21: .line 237
            aload 0 /* this */
            aload 6 /* commonMessage */
            aload 2 /* args */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.formatMessage:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 6 // java.lang.String commonMessage
        22: .line 242
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 0 /* this */
            aload 1 /* code */
            aload 4 /* argsToUse */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessageFromParent:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 5 // java.util.Properties commonMessages
        end local 4 // java.lang.Object[] argsToUse
        end local 3 // java.util.Locale locale
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Lorg/springframework/context/support/AbstractMessageSource;
            0   23     1            code  Ljava/lang/String;
            0   23     2            args  [Ljava/lang/Object;
            0   23     3          locale  Ljava/util/Locale;
            5   23     4       argsToUse  [Ljava/lang/Object;
            7    9     5         message  Ljava/lang/String;
           11   17     5   messageFormat  Ljava/text/MessageFormat;
           18   23     5  commonMessages  Ljava/util/Properties;
           20   22     6   commonMessage  Ljava/lang/String;
      Exception table:
        from    to  target  type
          13    14      15  any
          15    16      15  any
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      code    
      args    
      locale  

  protected java.lang.String getMessageFromParent(java.lang.String, java.lang.Object[], java.util.Locale);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
        start local 2 // java.lang.Object[] args
        start local 3 // java.util.Locale locale
         0: .line 256
            aload 0 /* this */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getParentMessageSource:()Lorg/springframework/context/MessageSource;
            astore 4 /* parent */
        start local 4 // org.springframework.context.MessageSource parent
         1: .line 257
            aload 4 /* parent */
            ifnull 5
         2: .line 258
            aload 4 /* parent */
            instanceof org.springframework.context.support.AbstractMessageSource
            ifeq 4
         3: .line 261
            aload 4 /* parent */
            checkcast org.springframework.context.support.AbstractMessageSource
            aload 1 /* code */
            aload 2 /* args */
            aload 3 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessageInternal:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            areturn
         4: .line 266
      StackMap locals: org.springframework.context.MessageSource
      StackMap stack:
            aload 4 /* parent */
            aload 1 /* code */
            aload 2 /* args */
            aconst_null
            aload 3 /* locale */
            invokeinterface org.springframework.context.MessageSource.getMessage:(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
            areturn
         5: .line 270
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.springframework.context.MessageSource parent
        end local 3 // java.util.Locale locale
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/springframework/context/support/AbstractMessageSource;
            0    6     1    code  Ljava/lang/String;
            0    6     2    args  [Ljava/lang/Object;
            0    6     3  locale  Ljava/util/Locale;
            1    6     4  parent  Lorg/springframework/context/MessageSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
        Name  Flags
      code    
      args    
      locale  

  protected java.lang.String getDefaultMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale);
    descriptor: (Lorg/springframework/context/MessageSourceResolvable;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // org.springframework.context.MessageSourceResolvable resolvable
        start local 2 // java.util.Locale locale
         0: .line 287
            aload 1 /* resolvable */
            invokeinterface org.springframework.context.MessageSourceResolvable.getDefaultMessage:()Ljava/lang/String;
            astore 3 /* defaultMessage */
        start local 3 // java.lang.String defaultMessage
         1: .line 288
            aload 1 /* resolvable */
            invokeinterface org.springframework.context.MessageSourceResolvable.getCodes:()[Ljava/lang/String;
            astore 4 /* codes */
        start local 4 // java.lang.String[] codes
         2: .line 289
            aload 3 /* defaultMessage */
            ifnull 6
         3: .line 290
            aload 4 /* codes */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 5
            aload 3 /* defaultMessage */
            aload 4 /* codes */
            iconst_0
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 292
            aload 3 /* defaultMessage */
            areturn
         5: .line 294
      StackMap locals: java.lang.String java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* defaultMessage */
            aload 1 /* resolvable */
            invokeinterface org.springframework.context.MessageSourceResolvable.getArguments:()[Ljava/lang/Object;
            aload 2 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.renderDefaultMessage:(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Locale;)Ljava/lang/String;
            areturn
         6: .line 296
      StackMap locals:
      StackMap stack:
            aload 4 /* codes */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 7
            aload 0 /* this */
            aload 4 /* codes */
            iconst_0
            aaload
            invokevirtual org.springframework.context.support.AbstractMessageSource.getDefaultMessage:(Ljava/lang/String;)Ljava/lang/String;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         8: areturn
        end local 4 // java.lang.String[] codes
        end local 3 // java.lang.String defaultMessage
        end local 2 // java.util.Locale locale
        end local 1 // org.springframework.context.MessageSourceResolvable resolvable
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/springframework/context/support/AbstractMessageSource;
            0    9     1      resolvable  Lorg/springframework/context/MessageSourceResolvable;
            0    9     2          locale  Ljava/util/Locale;
            1    9     3  defaultMessage  Ljava/lang/String;
            2    9     4           codes  [Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      resolvable  
      locale      

  protected java.lang.String getDefaultMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
         0: .line 311
            aload 0 /* this */
            invokevirtual org.springframework.context.support.AbstractMessageSource.isUseCodeAsDefaultMessage:()Z
            ifeq 2
         1: .line 312
            aload 1 /* code */
            areturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/context/support/AbstractMessageSource;
            0    3     1  code  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      code  

  protected java.lang.Object[] resolveArguments(java.lang.Object[], java.util.Locale);
    descriptor: ([Ljava/lang/Object;Ljava/util/Locale;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.Object[] args
        start local 2 // java.util.Locale locale
         0: .line 328
            aload 1 /* args */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 329
            aload 0 /* this */
            aload 1 /* args */
            aload 2 /* locale */
            invokespecial org.springframework.context.support.MessageSourceSupport.resolveArguments:([Ljava/lang/Object;Ljava/util/Locale;)[Ljava/lang/Object;
            areturn
         2: .line 331
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 1 /* args */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* resolvedArgs */
        start local 3 // java.util.List resolvedArgs
         3: .line 332
            aload 1 /* args */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: org.springframework.context.support.AbstractMessageSource java.lang.Object[] java.util.Locale java.util.List top int int java.lang.Object[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
         5: .line 333
            aload 4 /* arg */
            instanceof org.springframework.context.MessageSourceResolvable
            ifeq 8
         6: .line 334
            aload 3 /* resolvedArgs */
            aload 0 /* this */
            aload 4 /* arg */
            checkcast org.springframework.context.MessageSourceResolvable
            aload 2 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.getMessage:(Lorg/springframework/context/MessageSourceResolvable;Ljava/util/Locale;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 335
            goto 9
         8: .line 337
      StackMap locals: org.springframework.context.support.AbstractMessageSource java.lang.Object[] java.util.Locale java.util.List java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 3 /* resolvedArgs */
            aload 4 /* arg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Object arg
         9: .line 332
      StackMap locals: org.springframework.context.support.AbstractMessageSource java.lang.Object[] java.util.Locale java.util.List top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 4
        11: .line 340
            aload 3 /* resolvedArgs */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            areturn
        end local 3 // java.util.List resolvedArgs
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.Object[] args
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/springframework/context/support/AbstractMessageSource;
            0   12     1          args  [Ljava/lang/Object;
            0   12     2        locale  Ljava/util/Locale;
            3   12     3  resolvedArgs  Ljava/util/List<Ljava/lang/Object;>;
            5    9     4           arg  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
        Name  Flags
      args    
      locale  

  protected java.lang.String resolveCodeWithoutArguments(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.springframework.context.support.AbstractMessageSource this
        start local 1 // java.lang.String code
        start local 2 // java.util.Locale locale
         0: .line 362
            aload 0 /* this */
            aload 1 /* code */
            aload 2 /* locale */
            invokevirtual org.springframework.context.support.AbstractMessageSource.resolveCode:(Ljava/lang/String;Ljava/util/Locale;)Ljava/text/MessageFormat;
            astore 3 /* messageFormat */
        start local 3 // java.text.MessageFormat messageFormat
         1: .line 363
            aload 3 /* messageFormat */
            ifnull 7
         2: .line 364
            aload 3 /* messageFormat */
            dup
            astore 4
            monitorenter
         3: .line 365
            aload 3 /* messageFormat */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aload 4
            monitorexit
         4: areturn
         5: .line 364
      StackMap locals: org.springframework.context.support.AbstractMessageSource java.lang.String java.util.Locale java.text.MessageFormat java.text.MessageFormat
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
         6: athrow
         7: .line 368
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.text.MessageFormat messageFormat
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String code
        end local 0 // org.springframework.context.support.AbstractMessageSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/springframework/context/support/AbstractMessageSource;
            0    8     1           code  Ljava/lang/String;
            0    8     2         locale  Ljava/util/Locale;
            1    8     3  messageFormat  Ljava/text/MessageFormat;
      Exception table:
        from    to  target  type
           3     4       5  any
           5     6       5  any
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      code    
      locale  

  protected abstract java.text.MessageFormat resolveCode(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/text/MessageFormat;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      code    
      locale  
}
SourceFile: "AbstractMessageSource.java"