You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2013/10/31 17:12:55 UTC
svn commit: r1537543 -
/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
Author: sebb
Date: Thu Oct 31 16:12:55 2013
New Revision: 1537543
URL: http://svn.apache.org/r1537543
Log:
Rework to avoid unchecked cast warnings
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=1537543&r1=1537542&r2=1537543&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 Thu Oct 31 16:12:55 2013
@@ -1738,23 +1738,21 @@ public class BasicDataSource implements
Driver driverToUse = this.driver;
if (driverToUse == null) {
- Class<Driver> driverFromCCL = null;
+ Class<?> driverFromCCL = null;
if (driverClassName != null) {
try {
try {
if (driverClassLoader == null) {
- driverFromCCL = (Class<Driver>) Class.forName(driverClassName);
+ driverFromCCL = Class.forName(driverClassName);
} else {
- driverFromCCL = (Class<Driver>) Class.forName(
+ driverFromCCL = Class.forName(
driverClassName, true, driverClassLoader);
}
} catch (ClassNotFoundException cnfe) {
- driverFromCCL = (Class<Driver>) Thread.currentThread(
+ driverFromCCL = Thread.currentThread(
).getContextClassLoader().loadClass(
driverClassName);
}
- // N.B. the casts above may cause ClassCastException if classname is not correct
- // This is caught below
} catch (Exception t) {
String message = "Cannot load JDBC driver class '" +
driverClassName + "'";
@@ -1770,7 +1768,8 @@ public class BasicDataSource implements
} else {
// Usage of DriverManager is not possible, as it does not
// respect the ContextClassLoader
- driverToUse = driverFromCCL.newInstance();
+ // N.B. This cast may cause ClassCastException which is handled below
+ driverToUse = (Driver) driverFromCCL.newInstance();
if (!driverToUse.acceptsURL(url)) {
throw new SQLException("No suitable driver", "08001");
}