[ https://issues.apache.org/jira/browse/DBCP-252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phil Steitz resolved DBCP-252. ------------------------------ Resolution: Fixed Fixed all identified issues other than the PoolingDriver complaints which would require backward-incompatible changes. > Bugs found by Findbugs > ---------------------- > > Key: DBCP-252 > URL: https://issues.apache.org/jira/browse/DBCP-252 > Project: Commons Dbcp > Issue Type: Bug > Reporter: Sebb > Fix For: 1.3 > > > ManagedConnection.java has (line 155) > ================ > protected class CompletionListener implements TransactionContextListener { > public void afterCompletion(TransactionContext transactionContext, > boolean commited) { > if (transactionContext == transactionContext) { > transactionComplete(); > } > } > } > The transactionContext parameter is hiding the field transactionContext. > The parameter should be renamed, as at present the comparison will always > succeed. > PoolingDriver: > =========== > the following fields should be final: > _pools > MAJOR_VERSION > MINOR_VERSION > URL_PREFIX > URL_PREFIX_LEN > In fact the last four should probably be private as well > toString() should not return null > CPDSConnectionFactory > =================== > setPool() is synch; getPool() is not. Either make both sync or make _pool > volatile. > setRollbackAfterValidation is synch, however the field it sets - > _rollbackAfterValidation - is not read using synch. > Either synch the read operation - or better here - drop the synch, and make > the field volatile > Same applies to setValidationQuery() and _validationQuery > KeyedCPDSConnectionFactory > ======================== > setRollbackAfterValidation is synch, however the field it sets - > _rollbackAfterValidation - is not read using synch. > Either synch the read operation - or better here - drop the synch, and make > the field volatile > Same applies to setValidationQuery() and _validationQuery > PoolableConnectionFactory > ====================== > setPool() is synch; getPool() is not. Either make both sync or make _pool > volatile. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.