Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-1484

PooledConnection.close() doesn't always close the ActiveMQConnection

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Not A Problem
    • 5.0.0
    • AGING_TO_DIE
    • Broker
    • None

    Description

      using snapshot apache-activemq-5.0-20071028.173739-45

      if you call org.apache.activemq.pool.PooledConnection.close(), it calls ConnectionPool.decrementReferenceCount()

      this updates the lastUsed time and decrements the ref count, which if its now zero, calls expiredCheck();

      in this case, ConnectionPool.expiredCheck() will only close the connection if hasFailed or hasExpired is true (it won't close based on idle time because you've just updated lastUsed)

      which means that in a lot of cases it won't actually close the connection. if you are shutting down the JVM, the connection must be closed otherwise there will be a non-daemon thread still waiting around which will prevent everything from shutting down cleanly.

      to fix, i think if ref count is zero, then it should always close().

      Attachments

        Activity

          People

            Unassigned Unassigned
            aburgel Alex Burgel
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: