Review request 7190657 Modify getDriver() to call Thread.currentThread().getContextClassLoader();

Lance Andersen - Oracle Lance.Andersen at oracle.com
Fri Aug 10 17:19:32 UTC 2012


Looking for a reviewer for the following change:

-  add  a call to Thread.currentThread().getContextClassLoader() to DriverManager.getDriver()
- Remove the synchronized block for the same call in getConnection()

Thank you.

Best
Lance

localhost:sql lanceandersen$ hg diff DriverManager.java
diff -r 629f357fc17b src/share/classes/java/sql/DriverManager.java
--- a/src/share/classes/java/sql/DriverManager.java	Fri Aug 10 09:17:14 2012 -0400
+++ b/src/share/classes/java/sql/DriverManager.java	Fri Aug 10 13:05:00 2012 -0400
@@ -264,6 +264,10 @@
         // be null.
         ClassLoader callerCL = DriverManager.getCallerClassLoader();
 
+        if(callerCL == null) {
+            callerCL = Thread.currentThread().getContextClassLoader();
+        }
+
         // Walk through the loaded registeredDrivers attempting to locate someone
         // who understands the given URL.
         for (DriverInfo aDriver : registeredDrivers) {
@@ -563,11 +567,8 @@
          * classloader, so that the JDBC driver class outside rt.jar
          * can be loaded from here.
          */
-        synchronized(DriverManager.class) {
-          // synchronize loading of the correct classloader.
-          if(callerCL == null) {
-              callerCL = Thread.currentThread().getContextClassLoader();
-           }
+        if(callerCL == null) {
+            callerCL = Thread.currentThread().getContextClassLoader();
         }
 
         if(url == null) {
localhost:sql lanceandersen$ 

Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
Lance.Andersen at oracle.com




More information about the core-libs-dev mailing list