Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 91EA010238 for ; Thu, 31 Oct 2013 16:13:39 +0000 (UTC) Received: (qmail 9655 invoked by uid 500); 31 Oct 2013 16:13:31 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 8456 invoked by uid 500); 31 Oct 2013 16:13:23 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 8283 invoked by uid 99); 31 Oct 2013 16:13:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Oct 2013 16:13:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Oct 2013 16:13:15 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A14212388868; Thu, 31 Oct 2013 16:12:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1537543 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java Date: Thu, 31 Oct 2013 16:12:55 -0000 To: commits@commons.apache.org From: sebb@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20131031161255.A14212388868@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 driverFromCCL = null; + Class driverFromCCL = null; if (driverClassName != null) { try { try { if (driverClassLoader == null) { - driverFromCCL = (Class) Class.forName(driverClassName); + driverFromCCL = Class.forName(driverClassName); } else { - driverFromCCL = (Class) Class.forName( + driverFromCCL = Class.forName( driverClassName, true, driverClassLoader); } } catch (ClassNotFoundException cnfe) { - driverFromCCL = (Class) 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"); }