Lance,

On 11/08/2012 3:19 AM, Lance Andersen - Oracle wrote:
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()

What is the context for the change? What is it trying to achieve or avoid?

David

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.ander...@oracle.com

Reply via email to