[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    svn commit: r580626 - in /commons/proper/dbcp/trunk/src:
From:       psteitz () apache ! org
Date:       2007-09-29 19:07:28
Message-ID: 20070929190732.392301A9832 () eris ! apache ! org
[Download RAW message or body]

Author: psteitz
Date: Sat Sep 29 12:07:27 2007
New Revision: 580626

URL: http://svn.apache.org/viewvc?rev=580626&view=rev
Log:
Completed fix for DBCP-241.  Guard RTE in delegate toString.
JIRA: DBCP-241

Modified:
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/DelegatingConnection.java
  commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingConnection.java


Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/DelegatingConnection.java
                
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/DelegatingConnection.java?rev=580626&r1=580625&r2=580626&view=diff
 ==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/DelegatingConnection.java \
                (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/DelegatingConnection.java \
Sat Sep 29 12:07:27 2007 @@ -359,8 +359,14 @@
     protected void checkOpen() throws SQLException {
         if(_closed) {
             if (null != _conn) {
+                String label = "";
+                try {
+                    label = _conn.toString();
+                } catch (Exception ex) {
+                    // ignore, leave label empty
+                }
                 throw new SQLException
-                    ("Connection " + _conn + " is closed.");
+                    ("Connection " + label + " is closed.");
             } else {
                 throw new SQLException
                     ("Connection is null.");

Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingConnection.java
                
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingConnection.java?rev=580626&r1=580625&r2=580626&view=diff
 ==============================================================================
--- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingConnection.java \
                (original)
+++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestDelegatingConnection.java \
Sat Sep 29 12:07:27 2007 @@ -125,6 +125,29 @@
             fail("Expecting SQLException");
         } catch (SQLException ex) {
             assertTrue(ex.getMessage().endsWith("invalid PoolingConnection."));
-        }   
+        }  
+        
+        try {
+            conn = new DelegatingConnection(new RTEGeneratingConnection());
+            conn.close();
+            conn.checkOpen();
+            fail("Expecting SQLException");
+        } catch (SQLException ex) {
+            assertTrue(ex.getMessage().endsWith("is closed."));
+        }
+    }
+    
+    /**
+     * Delegate that will throw RTE on toString
+     * Used to validate fix for DBCP-241
+     */
+    class RTEGeneratingConnection extends TesterConnection {
+        public RTEGeneratingConnection() {
+            super("","");
+        }
+        public String toString() {
+            throw new RuntimeException("bang!");
+        }
+        
     }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic