On 31/10/2013 15:36, sebb wrote: > On 31 October 2013 15:26, Mark Thomas <ma...@apache.org> wrote: >> On 31/10/2013 15:13, s...@apache.org wrote: >>> Author: sebb >>> Date: Thu Oct 31 15:13:47 2013 >>> New Revision: 1537525 >>> >>> URL: http://svn.apache.org/r1537525 >>> Log: >>> Document that CCE is handled OK; there is no "unchecked" warning happening >>> here >> >> Why did you make this change? It undoes a recent commit that fixed a >> handful of type safety warnings. > > I don't see any warnings when building with Java 7 or Eclipse.
I suspect you have "Ignore unavoidable generic type problems" enabled. The issue with this is that it is an Eclipse specific feature. Users of $OTHER_IDE can't enabled it and therefore can't work with a clean (i.e. warning free) code base. I do use Eclipse and could enable that option but having gone through a enable it, remove the warnings, have $OTHER_IDE users complain, disable it, add the warnings back cycle with Tomcat, I'd rather not repeat the exercise here. @SuppressWarnings("unchecked") // Unavoidable is probably the way to go here. Mark > > AFAICT these are now just class casts that can fail with CCE. > > If necessary it can be reverted. > In which case need to document why the annotatiions are needed and why > they are OK to use (i.e. in this case the CCE is expected and > handled). > >> Mark >> >> >>> 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=1537525&r1=1537524&r2=1537525&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 15:13:47 2013 >>> @@ -1743,23 +1743,18 @@ public class BasicDataSource implements >>> try { >>> try { >>> if (driverClassLoader == null) { >>> - @SuppressWarnings("unchecked") >>> - Class<Driver> c = >>> - (Class<Driver>) >>> Class.forName(driverClassName); >>> - driverFromCCL = c; >>> + driverFromCCL = (Class<Driver>) >>> Class.forName(driverClassName); >>> } else { >>> - @SuppressWarnings("unchecked") >>> - Class<Driver> c = (Class<Driver>) >>> Class.forName( >>> + driverFromCCL = (Class<Driver>) Class.forName( >>> driverClassName, true, >>> driverClassLoader); >>> - driverFromCCL = c; >>> } >>> } catch (ClassNotFoundException cnfe) { >>> - @SuppressWarnings("unchecked") >>> - Class<Driver> c = (Class<Driver>) >>> Thread.currentThread( >>> + driverFromCCL = (Class<Driver>) >>> Thread.currentThread( >>> ).getContextClassLoader().loadClass( >>> driverClassName); >>> - driverFromCCL = c; >>> } >>> + // 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 + "'"; >>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org