public abstract class sun.util.resources.Bundles
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.util.resources.Bundles
  super_class: java.lang.Object
{
  private static final int INITIAL_CACHE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final java.util.ResourceBundle NONEXISTENT_BUNDLE;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.access.JavaUtilResourceBundleAccess bundleAccess;
    descriptor: Ljdk/internal/access/JavaUtilResourceBundleAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.ConcurrentMap<sun.util.resources.Bundles$CacheKey, sun.util.resources.Bundles$BundleReference> cacheList;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Lsun/util/resources/Bundles$CacheKey;Lsun/util/resources/Bundles$BundleReference;>;

  private static final java.lang.ref.ReferenceQueue<java.lang.Object> referenceQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 70
            new sun.util.resources.Bundles$1
            dup
            invokespecial sun.util.resources.Bundles$1.<init>:()V
            putstatic sun.util.resources.Bundles.NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
         1: .line 80
            invokestatic jdk.internal.access.SharedSecrets.getJavaUtilResourceBundleAccess:()Ljdk/internal/access/JavaUtilResourceBundleAccess;
         2: .line 79
            putstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
         3: .line 95
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 32
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
         4: .line 94
            putstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
         5: .line 100
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic sun.util.resources.Bundles.referenceQueue:Ljava/lang/ref/ReferenceQueue;
            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 // sun.util.resources.Bundles this
         0: .line 102
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            return
        end local 0 // sun.util.resources.Bundles this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/util/resources/Bundles;

  public static java.util.ResourceBundle of(java.lang.String, java.util.Locale, sun.util.resources.Bundles$Strategy);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Lsun/util/resources/Bundles$Strategy;)Ljava/util/ResourceBundle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String baseName
        start local 1 // java.util.Locale locale
        start local 2 // sun.util.resources.Bundles$Strategy strategy
         0: .line 106
            aload 0 /* baseName */
            aload 1 /* locale */
            aload 2 /* strategy */
            invokestatic sun.util.resources.Bundles.loadBundleOf:(Ljava/lang/String;Ljava/util/Locale;Lsun/util/resources/Bundles$Strategy;)Ljava/util/ResourceBundle;
            areturn
        end local 2 // sun.util.resources.Bundles$Strategy strategy
        end local 1 // java.util.Locale locale
        end local 0 // java.lang.String baseName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  baseName  Ljava/lang/String;
            0    1     1    locale  Ljava/util/Locale;
            0    1     2  strategy  Lsun/util/resources/Bundles$Strategy;
    MethodParameters:
          Name  Flags
      baseName  
      locale    
      strategy  

  private static java.util.ResourceBundle loadBundleOf(java.lang.String, java.util.Locale, sun.util.resources.Bundles$Strategy);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Lsun/util/resources/Bundles$Strategy;)Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String baseName
        start local 1 // java.util.Locale targetLocale
        start local 2 // sun.util.resources.Bundles$Strategy strategy
         0: .line 112
            aload 0 /* baseName */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 113
            aload 1 /* targetLocale */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 114
            aload 2 /* strategy */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 116
            new sun.util.resources.Bundles$CacheKey
            dup
            aload 0 /* baseName */
            aload 1 /* targetLocale */
            invokespecial sun.util.resources.Bundles$CacheKey.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 3 /* cacheKey */
        start local 3 // sun.util.resources.Bundles$CacheKey cacheKey
         4: .line 118
            aconst_null
            astore 4 /* bundle */
        start local 4 // java.util.ResourceBundle bundle
         5: .line 121
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* cacheKey */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$BundleReference
            astore 5 /* bundleRef */
        start local 5 // sun.util.resources.Bundles$BundleReference bundleRef
         6: .line 122
            aload 5 /* bundleRef */
            ifnull 8
         7: .line 123
            aload 5 /* bundleRef */
            invokevirtual sun.util.resources.Bundles$BundleReference.get:()Ljava/lang/Object;
            checkcast java.util.ResourceBundle
            astore 4 /* bundle */
         8: .line 128
      StackMap locals: sun.util.resources.Bundles$CacheKey java.util.ResourceBundle sun.util.resources.Bundles$BundleReference
      StackMap stack:
            aload 4 /* bundle */
            invokestatic sun.util.resources.Bundles.isValidBundle:(Ljava/util/ResourceBundle;)Z
            ifeq 10
         9: .line 129
            aload 4 /* bundle */
            areturn
        10: .line 136
      StackMap locals:
      StackMap stack:
            aload 2 /* strategy */
            aload 0 /* baseName */
            aload 1 /* targetLocale */
            invokeinterface sun.util.resources.Bundles$Strategy.getResourceBundleProviderType:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/Class;
        11: .line 135
            astore 6 /* type */
        start local 6 // java.lang.Class type
        12: .line 137
            aload 6 /* type */
            ifnull 16
        13: .line 140
            aload 6 /* type */
            invokestatic java.util.ServiceLoader.loadInstalled:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
        14: .line 139
            astore 7 /* providers */
        start local 7 // java.util.ServiceLoader providers
        15: .line 141
            aload 3 /* cacheKey */
            aload 7 /* providers */
            invokevirtual sun.util.resources.Bundles$CacheKey.setProviders:(Ljava/util/ServiceLoader;)V
        end local 7 // java.util.ServiceLoader providers
        16: .line 144
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* strategy */
            aload 0 /* baseName */
            aload 1 /* targetLocale */
            invokeinterface sun.util.resources.Bundles$Strategy.getCandidateLocales:(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;
            astore 7 /* candidateLocales */
        start local 7 // java.util.List candidateLocales
        17: .line 145
            aload 3 /* cacheKey */
            aload 2 /* strategy */
            aload 0 /* baseName */
            aload 7 /* candidateLocales */
            iconst_0
            invokestatic sun.util.resources.Bundles.findBundleOf:(Lsun/util/resources/Bundles$CacheKey;Lsun/util/resources/Bundles$Strategy;Ljava/lang/String;Ljava/util/List;I)Ljava/util/ResourceBundle;
            astore 4 /* bundle */
        18: .line 146
            aload 4 /* bundle */
            ifnonnull 20
        19: .line 147
            aload 0 /* baseName */
            aload 1 /* targetLocale */
            aload 3 /* cacheKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.getCause:()Ljava/lang/Throwable;
            invokestatic sun.util.resources.Bundles.throwMissingResourceException:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Throwable;)V
        20: .line 149
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* bundle */
            areturn
        end local 7 // java.util.List candidateLocales
        end local 6 // java.lang.Class type
        end local 5 // sun.util.resources.Bundles$BundleReference bundleRef
        end local 4 // java.util.ResourceBundle bundle
        end local 3 // sun.util.resources.Bundles$CacheKey cacheKey
        end local 2 // sun.util.resources.Bundles$Strategy strategy
        end local 1 // java.util.Locale targetLocale
        end local 0 // java.lang.String baseName
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0          baseName  Ljava/lang/String;
            0   21     1      targetLocale  Ljava/util/Locale;
            0   21     2          strategy  Lsun/util/resources/Bundles$Strategy;
            4   21     3          cacheKey  Lsun/util/resources/Bundles$CacheKey;
            5   21     4            bundle  Ljava/util/ResourceBundle;
            6   21     5         bundleRef  Lsun/util/resources/Bundles$BundleReference;
           12   21     6              type  Ljava/lang/Class<+Ljava/util/spi/ResourceBundleProvider;>;
           15   16     7         providers  Ljava/util/ServiceLoader<Ljava/util/spi/ResourceBundleProvider;>;
           17   21     7  candidateLocales  Ljava/util/List<Ljava/util/Locale;>;
    MethodParameters:
              Name  Flags
      baseName      
      targetLocale  
      strategy      

  private static java.util.ResourceBundle findBundleOf(sun.util.resources.Bundles$CacheKey, sun.util.resources.Bundles$Strategy, java.lang.String, java.util.List<java.util.Locale>, int);
    descriptor: (Lsun/util/resources/Bundles$CacheKey;Lsun/util/resources/Bundles$Strategy;Ljava/lang/String;Ljava/util/List;I)Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=5
        start local 0 // sun.util.resources.Bundles$CacheKey cacheKey
        start local 1 // sun.util.resources.Bundles$Strategy strategy
        start local 2 // java.lang.String baseName
        start local 3 // java.util.List candidateLocales
        start local 4 // int index
         0: .line 157
            aconst_null
            astore 5 /* parent */
        start local 5 // java.util.ResourceBundle parent
         1: .line 158
            aload 3 /* candidateLocales */
            iload 4 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Locale
            astore 6 /* targetLocale */
        start local 6 // java.util.Locale targetLocale
         2: .line 159
            iload 4 /* index */
            aload 3 /* candidateLocales */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpeq 4
         3: .line 160
            aload 0 /* cacheKey */
            aload 1 /* strategy */
            aload 2 /* baseName */
            aload 3 /* candidateLocales */
            iload 4 /* index */
            iconst_1
            iadd
            invokestatic sun.util.resources.Bundles.findBundleOf:(Lsun/util/resources/Bundles$CacheKey;Lsun/util/resources/Bundles$Strategy;Ljava/lang/String;Ljava/util/List;I)Ljava/util/ResourceBundle;
            astore 5 /* parent */
         4: .line 166
      StackMap locals: java.util.ResourceBundle java.util.Locale
      StackMap stack:
            invokestatic sun.util.resources.Bundles.cleanupCache:()V
         5: .line 169
            aload 0 /* cacheKey */
            aload 6 /* targetLocale */
            invokevirtual sun.util.resources.Bundles$CacheKey.setLocale:(Ljava/util/Locale;)Lsun/util/resources/Bundles$CacheKey;
            pop
         6: .line 170
            aload 0 /* cacheKey */
            invokestatic sun.util.resources.Bundles.findBundleInCache:(Lsun/util/resources/Bundles$CacheKey;)Ljava/util/ResourceBundle;
            astore 7 /* bundle */
        start local 7 // java.util.ResourceBundle bundle
         7: .line 171
            aload 7 /* bundle */
            ifnull 15
         8: .line 172
            aload 7 /* bundle */
            getstatic sun.util.resources.Bundles.NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
            if_acmpne 10
         9: .line 173
            aload 5 /* parent */
            areturn
        10: .line 175
      StackMap locals: java.util.ResourceBundle
      StackMap stack:
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 7 /* bundle */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.getParent:(Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
            aload 5 /* parent */
            if_acmpne 12
        11: .line 176
            aload 7 /* bundle */
            areturn
        12: .line 179
      StackMap locals:
      StackMap stack:
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* cacheKey */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$BundleReference
            astore 8 /* bundleRef */
        start local 8 // sun.util.resources.Bundles$BundleReference bundleRef
        13: .line 180
            aload 8 /* bundleRef */
            ifnull 15
            aload 8 /* bundleRef */
            invokevirtual sun.util.resources.Bundles$BundleReference.get:()Ljava/lang/Object;
            aload 7 /* bundle */
            if_acmpne 15
        14: .line 181
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* cacheKey */
            aload 8 /* bundleRef */
            invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 8 // sun.util.resources.Bundles$BundleReference bundleRef
        15: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* cacheKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.getProviders:()Ljava/util/ServiceLoader;
            astore 8 /* providers */
        start local 8 // java.util.ServiceLoader providers
        16: .line 192
            aload 8 /* providers */
            ifnull 19
        17: .line 193
            aload 1 /* strategy */
            aload 2 /* baseName */
            aload 6 /* targetLocale */
            invokeinterface sun.util.resources.Bundles$Strategy.getResourceBundleProviderType:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/Class;
            ifnonnull 19
        18: .line 194
            aconst_null
            astore 8 /* providers */
        19: .line 198
      StackMap locals: java.util.ServiceLoader
      StackMap stack:
            aload 0 /* cacheKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.clone:()Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$CacheKey
            astore 9 /* constKey */
        start local 9 // sun.util.resources.Bundles$CacheKey constKey
        20: .line 200
            aload 8 /* providers */
            ifnull 23
        21: .line 201
            aload 2 /* baseName */
            aload 6 /* targetLocale */
            aload 8 /* providers */
            aload 0 /* cacheKey */
            invokestatic sun.util.resources.Bundles.loadBundleFromProviders:(Ljava/lang/String;Ljava/util/Locale;Ljava/util/ServiceLoader;Lsun/util/resources/Bundles$CacheKey;)Ljava/util/ResourceBundle;
            astore 7 /* bundle */
        22: .line 202
            goto 36
        23: .line 204
      StackMap locals: sun.util.resources.Bundles$CacheKey
      StackMap stack:
            aload 1 /* strategy */
            aload 2 /* baseName */
            aload 6 /* targetLocale */
            invokeinterface sun.util.resources.Bundles$Strategy.toBundleName:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
            astore 10 /* bundleName */
        start local 10 // java.lang.String bundleName
        24: .line 205
            ldc Lsun/util/resources/Bundles;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            aload 10 /* bundleName */
            invokestatic java.lang.Class.forName:(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
            astore 11 /* c */
        start local 11 // java.lang.Class c
        25: .line 206
            aload 11 /* c */
            ifnull 36
            ldc Ljava/util/ResourceBundle;
            aload 11 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 36
        26: .line 208
            aload 11 /* c */
            astore 12 /* bundleClass */
        start local 12 // java.lang.Class bundleClass
        27: .line 209
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 12 /* bundleClass */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.newResourceBundle:(Ljava/lang/Class;)Ljava/util/ResourceBundle;
            astore 7 /* bundle */
        end local 12 // java.lang.Class bundleClass
        end local 11 // java.lang.Class c
        end local 10 // java.lang.String bundleName
        28: .line 211
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Exception
        29: astore 10 /* e */
        start local 10 // java.lang.Exception e
        30: .line 212
            aload 0 /* cacheKey */
            aload 10 /* e */
            invokevirtual sun.util.resources.Bundles$CacheKey.setCause:(Ljava/lang/Throwable;)V
        end local 10 // java.lang.Exception e
        31: .line 215
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 13
        33: .line 216
            aload 9 /* constKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.InterruptedException
            ifeq 35
        34: .line 217
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        35: .line 219
      StackMap locals: sun.util.resources.Bundles$CacheKey sun.util.resources.Bundles$Strategy java.lang.String java.util.List int java.util.ResourceBundle java.util.Locale java.util.ResourceBundle java.util.ServiceLoader sun.util.resources.Bundles$CacheKey top top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        36: .line 216
      StackMap locals: sun.util.resources.Bundles$CacheKey sun.util.resources.Bundles$Strategy java.lang.String java.util.List int java.util.ResourceBundle java.util.Locale java.util.ResourceBundle java.util.ServiceLoader sun.util.resources.Bundles$CacheKey
      StackMap stack:
            aload 9 /* constKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.InterruptedException
            ifeq 38
        37: .line 217
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        38: .line 221
      StackMap locals:
      StackMap stack:
            aload 7 /* bundle */
            ifnonnull 41
        39: .line 224
            aload 0 /* cacheKey */
            getstatic sun.util.resources.Bundles.NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
            invokestatic sun.util.resources.Bundles.putBundleInCache:(Lsun/util/resources/Bundles$CacheKey;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
            pop
        40: .line 225
            aload 5 /* parent */
            areturn
        41: .line 228
      StackMap locals:
      StackMap stack:
            aload 5 /* parent */
            ifnull 43
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 7 /* bundle */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.getParent:(Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
            ifnonnull 43
        42: .line 229
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 7 /* bundle */
            aload 5 /* parent */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.setParent:(Ljava/util/ResourceBundle;Ljava/util/ResourceBundle;)V
        43: .line 231
      StackMap locals:
      StackMap stack:
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 7 /* bundle */
            aload 6 /* targetLocale */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.setLocale:(Ljava/util/ResourceBundle;Ljava/util/Locale;)V
        44: .line 232
            getstatic sun.util.resources.Bundles.bundleAccess:Ljdk/internal/access/JavaUtilResourceBundleAccess;
            aload 7 /* bundle */
            aload 2 /* baseName */
            invokeinterface jdk.internal.access.JavaUtilResourceBundleAccess.setName:(Ljava/util/ResourceBundle;Ljava/lang/String;)V
        45: .line 233
            aload 0 /* cacheKey */
            aload 7 /* bundle */
            invokestatic sun.util.resources.Bundles.putBundleInCache:(Lsun/util/resources/Bundles$CacheKey;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
            astore 7 /* bundle */
        46: .line 234
            aload 7 /* bundle */
            areturn
        end local 9 // sun.util.resources.Bundles$CacheKey constKey
        end local 8 // java.util.ServiceLoader providers
        end local 7 // java.util.ResourceBundle bundle
        end local 6 // java.util.Locale targetLocale
        end local 5 // java.util.ResourceBundle parent
        end local 4 // int index
        end local 3 // java.util.List candidateLocales
        end local 2 // java.lang.String baseName
        end local 1 // sun.util.resources.Bundles$Strategy strategy
        end local 0 // sun.util.resources.Bundles$CacheKey cacheKey
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   47     0          cacheKey  Lsun/util/resources/Bundles$CacheKey;
            0   47     1          strategy  Lsun/util/resources/Bundles$Strategy;
            0   47     2          baseName  Ljava/lang/String;
            0   47     3  candidateLocales  Ljava/util/List<Ljava/util/Locale;>;
            0   47     4             index  I
            1   47     5            parent  Ljava/util/ResourceBundle;
            2   47     6      targetLocale  Ljava/util/Locale;
            7   47     7            bundle  Ljava/util/ResourceBundle;
           13   15     8         bundleRef  Lsun/util/resources/Bundles$BundleReference;
           16   47     8         providers  Ljava/util/ServiceLoader<Ljava/util/spi/ResourceBundleProvider;>;
           20   47     9          constKey  Lsun/util/resources/Bundles$CacheKey;
           24   28    10        bundleName  Ljava/lang/String;
           25   28    11                 c  Ljava/lang/Class<*>;
           27   28    12       bundleClass  Ljava/lang/Class<Ljava/util/ResourceBundle;>;
           30   31    10                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          23    28      29  Class java.lang.Exception
          20    32      32  any
    Signature: (Lsun/util/resources/Bundles$CacheKey;Lsun/util/resources/Bundles$Strategy;Ljava/lang/String;Ljava/util/List<Ljava/util/Locale;>;I)Ljava/util/ResourceBundle;
    MethodParameters:
                  Name  Flags
      cacheKey          
      strategy          
      baseName          
      candidateLocales  
      index             

  private static void cleanupCache();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 239
            goto 2
        start local 0 // java.lang.Object ref
         1: .line 240
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* ref */
            checkcast sun.util.resources.Bundles$CacheKeyReference
            invokeinterface sun.util.resources.Bundles$CacheKeyReference.getCacheKey:()Lsun/util/resources/Bundles$CacheKey;
            invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 0 // java.lang.Object ref
         2: .line 239
      StackMap locals:
      StackMap stack:
            getstatic sun.util.resources.Bundles.referenceQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            dup
            astore 0 /* ref */
        start local 0 // java.lang.Object ref
         3: ifnonnull 1
         4: .line 242
            return
        end local 0 // java.lang.Object ref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0   ref  Ljava/lang/Object;
            3    5     0   ref  Ljava/lang/Object;

  private static java.util.ResourceBundle loadBundleFromProviders(java.lang.String, java.util.Locale, java.util.ServiceLoader<java.util.spi.ResourceBundleProvider>, sun.util.resources.Bundles$CacheKey);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/util/ServiceLoader;Lsun/util/resources/Bundles$CacheKey;)Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.String baseName
        start local 1 // java.util.Locale locale
        start local 2 // java.util.ServiceLoader providers
        start local 3 // sun.util.resources.Bundles$CacheKey cacheKey
         0: .line 253
            new sun.util.resources.Bundles$2
            dup
            aload 2 /* providers */
            aload 0 /* baseName */
            aload 1 /* locale */
            aload 3 /* cacheKey */
            invokespecial sun.util.resources.Bundles$2.<init>:(Ljava/util/ServiceLoader;Ljava/lang/String;Ljava/util/Locale;Lsun/util/resources/Bundles$CacheKey;)V
         1: .line 252
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.ResourceBundle
            areturn
        end local 3 // sun.util.resources.Bundles$CacheKey cacheKey
        end local 2 // java.util.ServiceLoader providers
        end local 1 // java.util.Locale locale
        end local 0 // java.lang.String baseName
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0   baseName  Ljava/lang/String;
            0    2     1     locale  Ljava/util/Locale;
            0    2     2  providers  Ljava/util/ServiceLoader<Ljava/util/spi/ResourceBundleProvider;>;
            0    2     3   cacheKey  Lsun/util/resources/Bundles$CacheKey;
    Signature: (Ljava/lang/String;Ljava/util/Locale;Ljava/util/ServiceLoader<Ljava/util/spi/ResourceBundleProvider;>;Lsun/util/resources/Bundles$CacheKey;)Ljava/util/ResourceBundle;
    MethodParameters:
           Name  Flags
      baseName   
      locale     
      providers  
      cacheKey   

  private static boolean isValidBundle(java.util.ResourceBundle);
    descriptor: (Ljava/util/ResourceBundle;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.ResourceBundle bundle
         0: .line 275
            aload 0 /* bundle */
            ifnull 1
            aload 0 /* bundle */
            getstatic sun.util.resources.Bundles.NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.util.ResourceBundle bundle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  bundle  Ljava/util/ResourceBundle;
    MethodParameters:
        Name  Flags
      bundle  

  private static void throwMissingResourceException(java.lang.String, java.util.Locale, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.lang.String baseName
        start local 1 // java.util.Locale locale
        start local 2 // java.lang.Throwable cause
         0: .line 286
            aload 2 /* cause */
            instanceof java.util.MissingResourceException
            ifeq 2
         1: .line 287
            aconst_null
            astore 2 /* cause */
         2: .line 290
      StackMap locals:
      StackMap stack:
            new java.util.MissingResourceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't find bundle for base name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 291
            aload 0 /* baseName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", locale "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* locale */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 292
            new java.lang.StringBuilder
            dup
            aload 0 /* baseName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* locale */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 293
            ldc ""
         6: .line 290
            invokespecial java.util.MissingResourceException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.MissingResourceException e
         7: .line 294
            aload 3 /* e */
            aload 2 /* cause */
            invokevirtual java.util.MissingResourceException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         8: .line 295
            aload 3 /* e */
            athrow
        end local 3 // java.util.MissingResourceException e
        end local 2 // java.lang.Throwable cause
        end local 1 // java.util.Locale locale
        end local 0 // java.lang.String baseName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  baseName  Ljava/lang/String;
            0    9     1    locale  Ljava/util/Locale;
            0    9     2     cause  Ljava/lang/Throwable;
            7    9     3         e  Ljava/util/MissingResourceException;
    MethodParameters:
          Name  Flags
      baseName  
      locale    
      cause     

  private static java.util.ResourceBundle findBundleInCache(sun.util.resources.Bundles$CacheKey);
    descriptor: (Lsun/util/resources/Bundles$CacheKey;)Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.util.resources.Bundles$CacheKey cacheKey
         0: .line 305
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* cacheKey */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$BundleReference
            astore 1 /* bundleRef */
        start local 1 // sun.util.resources.Bundles$BundleReference bundleRef
         1: .line 306
            aload 1 /* bundleRef */
            ifnonnull 3
         2: .line 307
            aconst_null
            areturn
         3: .line 309
      StackMap locals: sun.util.resources.Bundles$BundleReference
      StackMap stack:
            aload 1 /* bundleRef */
            invokevirtual sun.util.resources.Bundles$BundleReference.get:()Ljava/lang/Object;
            checkcast java.util.ResourceBundle
            areturn
        end local 1 // sun.util.resources.Bundles$BundleReference bundleRef
        end local 0 // sun.util.resources.Bundles$CacheKey cacheKey
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0   cacheKey  Lsun/util/resources/Bundles$CacheKey;
            1    4     1  bundleRef  Lsun/util/resources/Bundles$BundleReference;
    MethodParameters:
          Name  Flags
      cacheKey  

  private static java.util.ResourceBundle putBundleInCache(sun.util.resources.Bundles$CacheKey, java.util.ResourceBundle);
    descriptor: (Lsun/util/resources/Bundles$CacheKey;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.util.resources.Bundles$CacheKey cacheKey
        start local 1 // java.util.ResourceBundle bundle
         0: .line 323
            aload 0 /* cacheKey */
            invokevirtual sun.util.resources.Bundles$CacheKey.clone:()Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$CacheKey
            astore 2 /* key */
        start local 2 // sun.util.resources.Bundles$CacheKey key
         1: .line 324
            new sun.util.resources.Bundles$BundleReference
            dup
            aload 1 /* bundle */
            getstatic sun.util.resources.Bundles.referenceQueue:Ljava/lang/ref/ReferenceQueue;
            aload 2 /* key */
            invokespecial sun.util.resources.Bundles$BundleReference.<init>:(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Lsun/util/resources/Bundles$CacheKey;)V
            astore 3 /* bundleRef */
        start local 3 // sun.util.resources.Bundles$BundleReference bundleRef
         2: .line 327
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* key */
            aload 3 /* bundleRef */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.util.resources.Bundles$BundleReference
            astore 4 /* result */
        start local 4 // sun.util.resources.Bundles$BundleReference result
         3: .line 331
            aload 4 /* result */
            ifnull 10
         4: .line 332
            aload 4 /* result */
            invokevirtual sun.util.resources.Bundles$BundleReference.get:()Ljava/lang/Object;
            checkcast java.util.ResourceBundle
            astore 5 /* rb */
        start local 5 // java.util.ResourceBundle rb
         5: .line 333
            aload 5 /* rb */
            ifnull 9
         6: .line 335
            aload 5 /* rb */
            astore 1 /* bundle */
         7: .line 338
            aload 3 /* bundleRef */
            invokevirtual sun.util.resources.Bundles$BundleReference.clear:()V
         8: .line 339
            goto 10
         9: .line 342
      StackMap locals: sun.util.resources.Bundles$CacheKey java.util.ResourceBundle sun.util.resources.Bundles$CacheKey sun.util.resources.Bundles$BundleReference sun.util.resources.Bundles$BundleReference java.util.ResourceBundle
      StackMap stack:
            getstatic sun.util.resources.Bundles.cacheList:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* key */
            aload 3 /* bundleRef */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.util.ResourceBundle rb
        10: .line 345
      StackMap locals:
      StackMap stack:
            aload 1 /* bundle */
            areturn
        end local 4 // sun.util.resources.Bundles$BundleReference result
        end local 3 // sun.util.resources.Bundles$BundleReference bundleRef
        end local 2 // sun.util.resources.Bundles$CacheKey key
        end local 1 // java.util.ResourceBundle bundle
        end local 0 // sun.util.resources.Bundles$CacheKey cacheKey
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0   cacheKey  Lsun/util/resources/Bundles$CacheKey;
            0   11     1     bundle  Ljava/util/ResourceBundle;
            1   11     2        key  Lsun/util/resources/Bundles$CacheKey;
            2   11     3  bundleRef  Lsun/util/resources/Bundles$BundleReference;
            3   11     4     result  Lsun/util/resources/Bundles$BundleReference;
            5   10     5         rb  Ljava/util/ResourceBundle;
    MethodParameters:
          Name  Flags
      cacheKey  
      bundle    
}
SourceFile: "Bundles.java"
NestMembers:
  sun.util.resources.Bundles$1  sun.util.resources.Bundles$2  sun.util.resources.Bundles$BundleReference  sun.util.resources.Bundles$CacheKey  sun.util.resources.Bundles$CacheKeyReference  sun.util.resources.Bundles$Strategy
InnerClasses:
  sun.util.resources.Bundles$1
  sun.util.resources.Bundles$2
  private BundleReference = sun.util.resources.Bundles$BundleReference of sun.util.resources.Bundles
  private CacheKey = sun.util.resources.Bundles$CacheKey of sun.util.resources.Bundles
  private abstract CacheKeyReference = sun.util.resources.Bundles$CacheKeyReference of sun.util.resources.Bundles
  public abstract Strategy = sun.util.resources.Bundles$Strategy of sun.util.resources.Bundles