SQLNestedException in its current state is a hangover from supporting JDK 1.3 when there was no "initCause()" method. This implementation can now be greatly simplified with DBCP now having a minimum of JDK 1.4
Also SQLNestedException is deprecated and the following code has been used in a number of places
DBCP is inconsistent though - sometimes using the above and sometimes using SQLNestedException. IMO SQLNestedException should be un-deprecated and used consistently everywhere - its now a simple implementation and I think the code is cleaner using it rather than the above.