[ https://issues.apache.org/jira/browse/DBCP-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phil Steitz resolved DBCP-193. ------------------------------ Resolution: Fixed Related multiple close bugs are fixed, so this issue should be resolved. > BasicDataSource returns negative values for NumActive when Oracle Driver > Connection#isClosed return true (End of file communication on CHannel) > ----------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DBCP-193 > URL: https://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. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]