commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DBCP-193) BasicDataSource returns negative values for NumActive when Oracle Driver Connection#isClosed return true (End of file communication on CHannel)
Date Sat, 09 Dec 2006 23:21:22 GMT
    [ http://issues.apache.org/jira/browse/DBCP-193?page=comments#action_12457147 ] 
            
Phil Steitz commented on DBCP-193:
----------------------------------

No (Hen), I think this remains a problem and will be fixed when we fix close semantics in
1.3

> BasicDataSource returns negative values for NumActive when Oracle Driver Connection#isClosed
return true (End of file communication on CHannel)
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DBCP-193
>                 URL: http://issues.apache.org/jira/browse/DBCP-193
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.1, 1.2.2
>         Environment: Windows / Oracle 10G JDBC driver / Oracle 10G / JDK 1.4.2_08 / Commons-dbcp-1.2.1.jar
/ COmmons-pool-1.3.jar
>            Reporter: Philippe Mouawad
>            Priority: Blocker
>             Fix For: 1.3
>
>         Attachments: ShowsBasicDataSourceBadNumActiveIfNoCheckForIsClosedAndDoubleClose.java,
ShowsLeaksIfCheckForIsClosed.java, TestUtils.java
>
>
> Hello,
> This bug occurs if the following conditions are met:
> A End of File communication on CHannel occurs 
> Oracle Driver 10G will return true for Connection#isClosed()
> Related bugs:
> DBCP-3
> DBCP-28
> Case 1:
> The client calls isClosed() before closing a connection since commons-dbcp does not allow
double close without throwing (see DBCP-3)
> => The problem is that since he calls isClosed, he encounters the same bug reported
in DBCP-28 because conn.isClosed() will return true and the client will not call close.
> if (!conn.isClosed())
> {
> try{
> conn.close();
> }catch(Exception e){}
> }
> see what happens if the isClosed() in PoolableConnection returns true : ShowsLeaksIfCheckForIsClosed.java
> Case2:
> The client tries to find a solution, and calls conn.close() without checking isClosed(),
but the problem is that the client is in a Persistence fwk and the client may have already
called close, so he ends up calling close() twice, see what happens if the isClosed() in PoolableConnection
returns true : ShowsBasicDataSourceBadNumActiveIfNoCheckForIsClosedAndDoubleClose.java

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message