Jetspeed 2
  1. Jetspeed 2
  2. JS2-852

Release content buffers after rendering

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.2.0
    • Component/s: Aggregation
    • Labels:
      None

      Description

      With a heap analysis tool, we have discovered that, when using a ThreadPool, such as on WAS 6.1, thread locals are being held onto for long periods of time.
      In the PortletEntityImpl, we are using a ThreadLocal to associate per user content fragments with the current thread, as the entity object is not user specific and thus not content specific.
      Instead of putting FragmentPortletDefinition directly on the thread local, instead put it on the Request Context request attribute map (which is really the servlet container's request attribute map)
      Thus, the FragmentPortletDefinition, and all objects in its subtree, most notably ContentFragmentImpl, PortletContentImpl, and PortletContentImpl's stream of content, will all be put into true per request storage, and no longer stick to the pooled thread locals.

      As an additional improvement, we will add logic to release the PortletContent streams after completion of draining of buffered streams out to the servlet response stream.

      I also want to investigate stream pooling properly at this time

        Activity

        Ate Douma made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        David Sean Taylor made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        David Sean Taylor made changes -
        Field Original Value New Value
        Status Open [ 1 ] In Progress [ 3 ]
        David Sean Taylor created issue -

          People

          • Assignee:
            David Sean Taylor
            Reporter:
            David Sean Taylor
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development