You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2002/06/13 22:23:52 UTC

DO NOT REPLY [Bug 9850] New: - No way to get at SQLException if connection to database fails in DriverManagerConnectionFactory

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9850>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9850

No way to get at SQLException if connection to database fails in DriverManagerConnectionFactory

           Summary: No way to get at SQLException if connection to database
                    fails in DriverManagerConnectionFactory
           Product: Commons
           Version: Nightly Builds
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Dbcp
        AssignedTo: commons-dev@jakarta.apache.org
        ReportedBy: fuerth@sqlpower.ca


We're using the Commons DBCP for a project which uses l10n for error messages.  As such, we need access to the SQLException error code when connection fails.

This patch to apply the "root cause" design pattern (as seen in ServletException, JspException, and InvocationTargetException of the official java API) works well for us.  We'd like to see it included in future revisions of DBCP.

Thanks!

------- BEGIN DIFF
diff -c -r1.2 DriverManagerConnectionFactory.java
*** DriverManagerConnectionFactory.java	15 Apr 2001 17:31:40 -0000	1.2
--- DriverManagerConnectionFactory.java	13 Jun 2002 20:20:56 -0000
***************
*** 70,75 ****
--- 70,77 ----
   *
   * @author Rodney Waldhoff
   * @author Ignacio J. Ortega
+  * @author Jonathan Fuerth
+  * @author Dan Fraser
   *
   * @version $Id: DriverManagerConnectionFactory.java,v 1.2 2001/04/15 17:31:40 nacho Exp $
   */
***************
*** 98,104 ****
                  return DriverManager.getConnection(_connectUri,_props);
              }
          } catch(SQLException e) {
!             throw new RuntimeException(e.toString());
          }
      }
  
--- 100,106 ----
                  return DriverManager.getConnection(_connectUri,_props);
              }
          } catch(SQLException e) {
!             throw new DBCPException(e, "Could not create database connection");
          }
      }
  
------- END DIFF

And the addition of this new class:

------- BEGIN DBCPException.java
package org.apache.commons.dbcp;

/*
 * (insert apache license here.. we disclaim everything about this file.)
 */

public class DBCPException extends RuntimeException {
	private Throwable _rootCause;
	
	public DBCPException(Throwable rootCause, String message) {
		super(message);
		_rootCause=rootCause;
	}

	public Throwable getRootCause() {
		return _rootCause;
	}
}
------- END DBCPException.java

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>