Commons Dbcp
  1. Commons Dbcp
  2. DBCP-318

PerUserPoolDataSource.getPooledConnectionAndInfo multi-threading bug

    Details

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

      Description

      PerUserPoolDataSource.getPooledConnectionAndInfo(user,pass) has the code:

      Object pool = pools.get(key); // (1) pools = instance variable
      synchronized(this) {
          if (pool == null) {
              try {
                  registerPool(username, password);
                  pool = pools.get(key);
      [...]
      

      The first get() call can return null to multiple threads, so multiple threads can register the pool.
      This allows more than maxActive() connections to be returned.

        Activity

        No work has yet been logged on this issue.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development