Author: psteitz
Date: Sun Jan 21 20:44:45 2007
New Revision: 498524

URL: http://svn.apache.org/viewvc?view=rev&rev=498524
Log:
Removed synchronization from prepareStatement methods in PoolingConnection.
Synchronization in these methods was causing deadlocks. No resources other
than the prepared statement pool are accessed by these methods, and the pool
methods are synchronized. Fixes DBCP-65 and DBCP-202.
See discussion in DBCP-65. 

Modified:
    
jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java

Modified: 
jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java?view=diff&rev=498524&r1=498523&r2=498524
==============================================================================
--- 
jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
 (original)
+++ 
jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
 Sun Jan 21 20:44:45 2007
@@ -87,7 +87,7 @@
      * Create or obtain a [EMAIL PROTECTED] PreparedStatement} from my pool.
      * @return a [EMAIL PROTECTED] PoolablePreparedStatement}
      */
-    public synchronized PreparedStatement prepareStatement(String sql) throws 
SQLException {
+    public PreparedStatement prepareStatement(String sql) throws SQLException {
         try {
             return(PreparedStatement)(_pstmtPool.borrowObject(createKey(sql)));
         } catch(NoSuchElementException e) {
@@ -103,7 +103,7 @@
      * Create or obtain a [EMAIL PROTECTED] PreparedStatement} from my pool.
      * @return a [EMAIL PROTECTED] PoolablePreparedStatement}
      */
-    public synchronized PreparedStatement prepareStatement(String sql, int 
resultSetType, int resultSetConcurrency) throws SQLException {
+    public PreparedStatement prepareStatement(String sql, int resultSetType, 
int resultSetConcurrency) throws SQLException {
         try {
             
return(PreparedStatement)(_pstmtPool.borrowObject(createKey(sql,resultSetType,resultSetConcurrency)));
         } catch(NoSuchElementException e) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to