Author: psteitz
Date: Wed Dec 23 00:07:57 2009
New Revision: 893360

URL: http://svn.apache.org/viewvc?rev=893360&view=rev
Log:
Clarified javadoc for BasicDataSource close() method.  JIRA:DBCP-312.

Modified:
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
    
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java
    commons/proper/dbcp/trunk/xdocs/changes.xml

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java?rev=893360&r1=893359&r2=893360&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java 
(original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java 
Wed Dec 23 00:07:57 2009
@@ -1289,12 +1289,20 @@
     protected boolean closed;
 
     /**
-     * Close and release all connections that are currently stored in the
-     * connection pool associated with our data source.  All open (active)
-     * connection remain open until closed.  Once the data source has
-     * been closed, no more connections can be obtained.
+     * <p>Closes and releases all idle connections that are currently stored 
in the connection pool
+     * associated with this data source.</p>
      *
-     * @throws SQLException if a database error occurs
+     * <p>Connections that are checked out to clients when this method is 
invoked are not affected.  
+     * When client applications subsequently invoke {...@link 
Connection#close()} to return
+     * these connections to the pool, the underlying JDBC connections are 
closed.</p>
+     * 
+     * <p>Attempts to acquire connections using {...@link #getConnection()} 
after this method has been
+     * invoked result in SQLExceptions.<p>
+     * 
+     * <p>This method is idempotent - i.e., closing an already closed 
BasicDataSource has no effect
+     * and does not generate exceptions.</p>
+     * 
+     * @throws SQLException if an error occurs closing idle connections
      */
     public synchronized void close() throws SQLException {
         closed = true;

Modified: 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java?rev=893360&r1=893359&r2=893360&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java
 Wed Dec 23 00:07:57 2009
@@ -109,6 +109,18 @@
         // both wrapper and raw active connection should be closed
         assertTrue(activeConnection.isClosed());
         assertTrue(rawActiveConnection.isClosed());
+        
+        // Verify SQLException on getConnection after close
+        try {
+            activeConnection = getConnection();
+            fail("Expecting SQLException");
+        } catch (SQLException ex) {
+            // Expected
+        }
+        
+        // Redundant close is OK
+        ds.close();
+        
     }
 
     public void testSetProperties() throws Exception {

Modified: commons/proper/dbcp/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/xdocs/changes.xml?rev=893360&r1=893359&r2=893360&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/xdocs/changes.xml (original)
+++ commons/proper/dbcp/trunk/xdocs/changes.xml Wed Dec 23 00:07:57 2009
@@ -38,6 +38,11 @@
     <title>Commons DBCP Release Notes</title>
   </properties>
   <body>
+    <release version="1.4.1" date="TBD">
+      <action dev="psteitz" type="update" issue="DBCP-312" due-to="Glen Mazza">
+        Clarified javadoc for BasicDataSource close() method.
+      </action>
+    </release>
     <release version="1.4" date="TBD" description="This release includes
      new features as well as bug fixes and enhancements.  Some bug fixes
      change semantics (e.g. connection close is now idempotent).  The 1.3
@@ -233,6 +238,8 @@
         both getter and setter for _pool synchronized.
       </action> 
     </release>
+    <release version="1.3.1" date="TBD" description="Compatability release"
+     for JDBC 3. See version 1.4.1 description."/>
     <release version="1.3" date="TBD" description="Compatability release
      for JDBC 3.  See version 1.4 description."/>
     <release version="1.2.2" date="2007-04-04"


Reply via email to