Commons Dbcp
  1. Commons Dbcp
  2. DBCP-41

[dbcp][patch] docs lie: NOT maxIdle = 0 for no limit BUT -1

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.2
    • Fix Version/s: 1.3
    • Labels:
      None
    • Environment:

      Operating System: other
      Platform: Other

      Description

      Documnentation for BasicDataSource and in a number of other places say: setMaxIdle( 0 ) for no limit. But GenericObjectPool says that negative (-1 for instance) should be used for this purpose.

      In our neighbour project developers tried 0 and pool appeared to be non-functional: a new connection was created each time. They said: oh, well, drop dbcp, it does not work!

      I consider this doc update so critical that I'm submitting a patch.

        Issue Links

          Activity

          Hide
          Anton Tagunov added a comment -

          Created an attachment (id=15558)
          set maxIdle to negative value for no limit on idle connections

          Show
          Anton Tagunov added a comment - Created an attachment (id=15558) set maxIdle to negative value for no limit on idle connections
          Hide
          Anton Tagunov added a comment -

          Created an attachment (id=15560)
          fixed patch

          The patch contains exactly one code (not doc) fix:

          DriverAdapterCPDS.java
          if (isPoolPreparedStatements()) {

          • if (getMaxPreparedStatements() == -1)
            + if (getMaxPreparedStatements() <= 0)
            {
            // since there is no limit

          As docs now says that "non-positive" maxPreparedStatements stands for "no
          limit", and since this is the semantics of maxTotal in GenericKeyedObjectPool
          (where _maxPreparedStatements ends in) I think it is appropriate to change code
          like this.

          Sorry, my prev version of patch was in error at this exactly place.

          Show
          Anton Tagunov added a comment - Created an attachment (id=15560) fixed patch The patch contains exactly one code (not doc) fix: DriverAdapterCPDS.java if (isPoolPreparedStatements()) { if (getMaxPreparedStatements() == -1) + if (getMaxPreparedStatements() <= 0) { // since there is no limit As docs now says that "non-positive" maxPreparedStatements stands for "no limit", and since this is the semantics of maxTotal in GenericKeyedObjectPool (where _maxPreparedStatements ends in) I think it is appropriate to change code like this. Sorry, my prev version of patch was in error at this exactly place.
          Hide
          Phil Steitz added a comment -

          Patch applied. Thanks.

          Show
          Phil Steitz added a comment - Patch applied. Thanks.
          Hide
          Phil Steitz added a comment -

          The patch applied in r427015 should not have changed the description for maxActive.

          Show
          Phil Steitz added a comment - The patch applied in r427015 should not have changed the description for maxActive.
          Hide
          Phil Steitz added a comment -

          maxActive documentation error applies to 1.2.2 configuration.xml. Javadoc for BasicDataSource also needs to be fixed.

          Show
          Phil Steitz added a comment - maxActive documentation error applies to 1.2.2 configuration.xml. Javadoc for BasicDataSource also needs to be fixed.

            People

            • Assignee:
              Unassigned
              Reporter:
              Anton Tagunov
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development