< prev index next >

src/java.base/share/classes/java/lang/Module.java

Print this page

@@ -253,57 +253,49 @@
     // special Module to mean "everyone"
     private static final Module EVERYONE_MODULE;
     private static final Set<Module> EVERYONE_SET;
 
     private static class ArchivedData {
-        private static ArchivedData singleton;
-
-        private final Module        ALL_UNNAMED_MODULE;
-        private final Set<Module>   ALL_UNNAMED_MODULE_SET;
-        private final Module        EVERYONE_MODULE;
-        private final Set<Module>   EVERYONE_SET;
-
-        public ArchivedData(Module ALL_UNNAMED_MODULE,
-                            Set<Module> ALL_UNNAMED_MODULE_SET,
-                            Module EVERYONE_MODULE,
-                            Set<Module> EVERYONE_SET) {
-            this.ALL_UNNAMED_MODULE = ALL_UNNAMED_MODULE;
-            this.ALL_UNNAMED_MODULE_SET = ALL_UNNAMED_MODULE_SET;
-            this.EVERYONE_MODULE = EVERYONE_MODULE;
-            this.EVERYONE_SET = EVERYONE_SET;
+        private static ArchivedData archivedData;
+        private final Module allUnnamedModule;
+        private final Set<Module> allUnnamedModules;
+        private final Module everyoneModule;
+        private final Set<Module> everyoneSet;
+
+        private ArchivedData() {
+            this.allUnnamedModule = ALL_UNNAMED_MODULE;
+            this.allUnnamedModules = ALL_UNNAMED_MODULE_SET;
+            this.everyoneModule = EVERYONE_MODULE;
+            this.everyoneSet = EVERYONE_SET;
         }
 
-        static void archive(ArchivedData archivedData) {
-            singleton = archivedData;
+        static void archive() {
+            archivedData = new ArchivedData();
         }
 
         static ArchivedData get() {
-            return singleton;
+            return archivedData;
         }
 
         static {
             VM.initializeFromArchive(ArchivedData.class);
         }
     }
 
     static {
         ArchivedData archivedData = ArchivedData.get();
         if (archivedData != null) {
-            ALL_UNNAMED_MODULE     = archivedData.ALL_UNNAMED_MODULE;
-            ALL_UNNAMED_MODULE_SET = archivedData.ALL_UNNAMED_MODULE_SET;
-            EVERYONE_MODULE        = archivedData.EVERYONE_MODULE;
-            EVERYONE_SET           = archivedData.EVERYONE_SET;
+            ALL_UNNAMED_MODULE = archivedData.allUnnamedModule;
+            ALL_UNNAMED_MODULE_SET = archivedData.allUnnamedModules;
+            EVERYONE_MODULE = archivedData.everyoneModule;
+            EVERYONE_SET = archivedData.everyoneSet;
         } else {
             ALL_UNNAMED_MODULE = new Module(null);
             ALL_UNNAMED_MODULE_SET = Set.of(ALL_UNNAMED_MODULE);
             EVERYONE_MODULE = new Module(null);
             EVERYONE_SET = Set.of(EVERYONE_MODULE);
-
-            ArchivedData.archive(new ArchivedData(ALL_UNNAMED_MODULE,
-                                                  ALL_UNNAMED_MODULE_SET,
-                                                  EVERYONE_MODULE,
-                                                  EVERYONE_SET));
+            ArchivedData.archive();
         }
     }
 
     /**
      * The holder of data structures to support readability, exports, and
< prev index next >