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]