Uploaded image for project: 'Commons DBCP'
  1. Commons DBCP
  2. DBCP-3

[dbcp] PoolableConnection.close() won't allow multiple close

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Nightly Builds
    • 1.3
    • None
    • Operating System: All
      Platform: All

    • 23185

    Description

      Sun's javadoc for java.sql.Connection.close() specifies that calling close on an
      already closed Connection is a no-op. However, PoolableConnection.close() (v
      1.10) throws a SQLException if close() is called on a closed Connection.
      PoolableConnection.close() should just return if the Connection is already
      closed. Here is a patch:

      To demonstrate the bug, just obtain an open PoolableConnection and call close()
      on it twice; the second call will produce a SQLException. According to Sun's
      spec, the second close() should just be a no-op. The current behaviour is
      preferable to the old behaviour where it returned the Connection to the pool
      twice, but it's still not according to the spec.

      Here's a patch:

          • PoolableConnection.java.orig 2003-09-15 16:07:53.000000000 -0400
          • PoolableConnection.java 2003-09-15 16:08:11.000000000 -0400
            ***************
          • 108,114 ****
            */
            public synchronized void close() throws SQLException {
            if(isClosed()) { ! throw new SQLException("Already closed."); }

            else {
            try {
            _pool.returnObject(this);

          • 108,114 ----
            */
            public synchronized void close() throws SQLException {
            if(isClosed()) { ! return; }

            else {
            try {
            _pool.returnObject(this);

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              adam@thejenkins.org Adam Jenkins
              Votes:
              3 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: