Uploaded image for project: 'Qpid JMS'
  1. Qpid JMS
  2. QPIDJMS-299

executor thread factories can retain closed connection objects due to implicit parent references

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.24.0
    • qpid-jms-client
    • None

    Description

      The client creates various executors, supplying thread factories to set the names and daemon status. It typically does this using an anonymous inner class for the factory, and doing this results in the factory object having an implicit reference to its creating class instance, which in most cases makes them a way to reference the objects for a connection. This can at best make connection objects stick around longer than needed/desired when done with, but at worst during any resource cleanup issues could actually retain the connections related objects indefinitely and exhaust memory if this repeats often enough over time.

      We should create a common thread factory class that can avoid the existing duplicate code and ensure the thread factories don't have the impicit reference to their creators which can lead to undesirable retention.

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            robbie Robbie Gemmell
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: