jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
changeset 14679 e1fbc33baf51
parent 14222 58f55d4dde46
child 16110 2ce1c415475b
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	Wed Nov 28 10:08:31 2012 -0800
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java	Wed Nov 28 10:49:15 2012 -0800
@@ -448,7 +448,7 @@
         case "getDriver":
         case "getDrivers":
         case "deregisterDriver":
-            return defc == java.sql.DriverManager.class;
+            return defc == getClass("java.sql.DriverManager");
         case "newUpdater":
             if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class)  return true;
             if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class)  return true;
@@ -482,4 +482,14 @@
         }
         return false;
     }
+
+    // avoid static dependency to a class in other modules
+    private static Class<?> getClass(String cn) {
+        try {
+            return Class.forName(cn, false,
+                                 MethodHandleNatives.class.getClassLoader());
+        } catch (ClassNotFoundException e) {
+            throw new InternalError(e);
+        }
+    }
 }