[ http://issues.apache.org/jira/browse/DBCP-193?page=all ]
Phil Steitz updated DBCP-193: ----------------------------- Fix Version/s: 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: > http://issues.apache.org/jira/browse/DBCP-3 > http://issues.apache.org/jira/browse/DBCP-28 > Case 1: > The client calls isClosed() before closing a connection since commons-dbcp > does not allow double close without throwing (see > http://issues.apache.org/jira/browse/DBCP-3) > => The problem is that since he calls isClosed, he encounters the same bug > reported in http://issues.apache.org/jira/browse/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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]