Author: markt
Date: Wed Oct 30 14:38:54 2013
New Revision: 1537111

URL: http://svn.apache.org/r1537111
Log:
Use generics. Structure code so explicit @SuppressWarnings annotations can be 
used rather than adding one that covers the entire method.

Modified:
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java?rev=1537111&r1=1537110&r2=1537111&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
 Wed Oct 30 14:38:54 2013
@@ -1691,20 +1691,27 @@ public class BasicDataSource implements 
      */
     protected ConnectionFactory createConnectionFactory() throws SQLException {
         // Load the JDBC driver class
-        Class driverFromCCL = null;
+        Class<Driver> driverFromCCL = null;
         if (driverClassName != null) {
             try {
                 try {
                     if (driverClassLoader == null) {
-                        driverFromCCL = Class.forName(driverClassName);
+                        @SuppressWarnings("unchecked")
+                        Class<Driver> c =
+                                (Class<Driver>) Class.forName(driverClassName);
+                        driverFromCCL = c;
                     } else {
-                        driverFromCCL = Class.forName(
+                        @SuppressWarnings("unchecked")
+                        Class<Driver> c = (Class<Driver>) Class.forName(
                                 driverClassName, true, driverClassLoader);
+                        driverFromCCL = c;
                     }
                 } catch (ClassNotFoundException cnfe) {
-                    driverFromCCL = Thread.currentThread(
+                    @SuppressWarnings("unchecked")
+                    Class<Driver> c = (Class<Driver>) Thread.currentThread(
                             ).getContextClassLoader().loadClass(
                                     driverClassName);
+                    driverFromCCL = c;
                 }
             } catch (Exception t) {
                 String message = "Cannot load JDBC driver class '" +
@@ -1723,7 +1730,7 @@ public class BasicDataSource implements 
             } else {
                 // Usage of DriverManager is not possible, as it does not
                 // respect the ContextClassLoader
-                driver = (Driver) driverFromCCL.newInstance();
+                driver = driverFromCCL.newInstance();
                 if (!driver.acceptsURL(url)) {
                     throw new SQLException("No suitable driver", "08001");
                 }


Reply via email to