Please, review a simple fix in the java.lang.instrument.InstrumentationImpl transform() method.

This is the patch:

diff -r d2f46fdfc3ca src/java.base/share/classes/module-info.java
--- a/src/java.base/share/classes/module-info.java Thu May 05 11:44:01 2016 -0700 +++ b/src/java.base/share/classes/module-info.java Fri May 06 00:11:23 2016 -0700
@@ -145,6 +145,8 @@
         jdk.scripting.nashorn;
     exports jdk.internal.org.objectweb.asm.signature to
         jdk.scripting.nashorn;
+    exports jdk.internal.loader to
+        java.instrument;
     exports jdk.internal.math to
         java.desktop;
     exports jdk.internal.module to


diff -r d2f46fdfc3ca src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java --- a/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java Thu May 05 11:44:01 2016 -0700 +++ b/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java Fri May 06 00:11:23 2016 -0700
@@ -41,6 +41,8 @@
 import java.util.Objects;
 import java.util.jar.JarFile;

+import jdk.internal.loader.BootLoader;
+
 /*
  * Copyright 2003 Wily Technology, Inc.
  */
@@ -436,7 +438,8 @@
             if (classBeingRedefined != null) {
                 module = classBeingRedefined.getModule();
             } else {
-                module = loader.getUnnamedModule();
+ module = (loader == null) ? jdk.internal.loader.BootLoader.getUnnamedModule()
+                                          : loader.getUnnamedModule();
             }
         }
         if (mgr == null) {


Summary:

   InstrumentationImpl.transform has this:
        if (module == null) {
            if (classBeingRedefined != null) {
                module = classBeingRedefined.getModule();
            } else {
                module = loader.getUnnamedModule();
            }
        }

but if loader is null (-Xbootclasspath/a case) then this throws NullPointerException. If loader is null then we need to use jdk.internal.loader.BootLoader.getUnnamedModule().


Testing:
   In progress: run the JTreg :jdk_instrument tests.


Thanks,
Serguei

Reply via email to