BasicDataSource.close() method needs JavaDoc clarification
----------------------------------------------------------

                 Key: DBCP-312
                 URL: https://issues.apache.org/jira/browse/DBCP-312
             Project: Commons Dbcp
          Issue Type: Bug
    Affects Versions: 1.3
            Reporter: Glen Mazza
            Priority: Minor


Hello, the JavaDoc could use clarification for the BasicDataSource.close() 
method.  

Link:  
http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html#close()

Text: "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."

I'm unsure if this method closes just idle, or both idle and active 
connections.  This is a important distinction, because you wouldn't want to 
call close() if you still have some needed active connections open on various 
threads.  The first sentence seems to indicate both active and idle threads 
will be closed, but the second sentence indicates that only the idle threads 
will be explicitly closed.

Recommend changing text to:
"Close and release all connections, whether active or idle, that are currently 
stored in the connection pool associated with our data source.  Once the data 
source has been closed, no more connections can be obtained."

or (if this method closes just idle connections):

"Close and release all idle connections that are currently stored in the 
connection pool associated with our data source. All open (active) connections 
will still remain open until they are closed via the Connection close() method. 
Once the data source has been closed, no more connections can be obtained."

Note that, for the latter case, if BasicDataSource.close() only closes and 
releases idle connections, and an active DBCP Connection object subsequently 
has its close() method called, it's not clear whether its underlying actual 
JDBC connection will be released.  I.e., how do you release JDBC connections on 
previously active DBCP Connections after BasicDataSource.close() is called?



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to