You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2008/03/09 07:45:46 UTC

[jira] Resolved: (DBCP-252) Bugs found by Findbugs

     [ 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.