Done!

On 02/16/2017 05:27 PM, Alan Bateman wrote:
I think go with the first for now.

-Alan


On 16/02/2017 16:24, Claes Redestad wrote:

Hi,

please review this simple backout of a startup optimization that has proven to destabilize things like rmid. Patch inline..

Bug: https://bugs.openjdk.java.net/browse/JDK-8175079

diff -r 87f2a6fb4b9a src/java.base/share/classes/java/lang/System.java
--- a/src/java.base/share/classes/java/lang/System.java Wed Feb 15 15:57:18 2017 +0100 +++ b/src/java.base/share/classes/java/lang/System.java Thu Feb 16 17:18:49 2017 +0100
@@ -1945,9 +1945,6 @@
         // set security manager
         String cn = System.getProperty("java.security.manager");
         if (cn != null) {
- // ensure image reader for java.base is initialized before security manager
-            Object.class.getResource("module-info.class");
-
             if (cn.isEmpty() || "default".equals(cn)) {
                 System.setSecurityManager(new SecurityManager());
             } else {
diff -r 87f2a6fb4b9a src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java --- a/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java Wed Feb 15 15:57:18 2017 +0100 +++ b/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java Thu Feb 16 17:18:49 2017 +0100
@@ -115,12 +115,7 @@
         long t0 = System.nanoTime();

         // system modules (may be patched)
-        ModuleFinder systemModules;
-        if (SystemModules.MODULE_NAMES.length > 0) {
-            systemModules = SystemModuleFinder.getInstance();
-        } else {
-            systemModules = ModuleFinder.ofSystem();
-        }
+        ModuleFinder systemModules = ModuleFinder.ofSystem();

         PerfCounters.systemModulesTime.addElapsedTimeFrom(t0);


An alternative patch is to move the force initialization of the image reader from initPhase3 to SecurityManager, which ensures it's initialized before a security manager is installed. This preserves the startup optimization in
case a SM is not installed:

diff -r 87f2a6fb4b9a src/java.base/share/classes/java/lang/SecurityManager.java --- a/src/java.base/share/classes/java/lang/SecurityManager.java Wed Feb 15 15:57:18 2017 +0100 +++ b/src/java.base/share/classes/java/lang/SecurityManager.java Thu Feb 16 17:23:57 2017 +0100
@@ -233,6 +233,11 @@
 public
 class SecurityManager {

+    static {
+ // ensure image reader for java.base is initialized before security
+        // manager is installed
+        Object.class.getResource("module-info.class");
+    }
     /**
      * This field is <code>true</code> if there is a security check in
      * progress; <code>false</code> otherwise.


Thanks!

/Claes


Reply via email to