ICEfaces
  1. ICEfaces
  2. ICE-10958

Possible Apache Xerces Memory Leak

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03
    • Fix Version/s: EE-4.1.0.GA, EE-3.3.0.GA_P04
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      All, Tomcat 7/8

      Description

      This JIRA is to investigate a possible memory leak with the org.apache.xerces.internal.dom classes. Testing with the Showcase demo on Tomcat and monitoring the memory with the Java Visual VM, the object instances are accumulating on each action/interaction with the page.

      These object instances are no cleaned up on session expiry or browser close. Testing the Showcase I just refreshed the browser a few times and interacted with some of the ACE components.

        Activity

        Hide
        Mircea Toma added a comment -

        Profiling the showcase application doesn't reveal a memory leak in Xerces DOM implementation. The total size of com.sun.org.apache.xerces.internal.dom.ElementImpl instances will stay below ~16MB (in showcase). Each view that JSF keeps around in the state (15 by default) will have a DOM document stored by ICEfaces in its associated map. This explains why navigating around, thus changing the views, will increase the number of DOM objects. Since the number of views are limited the number of DOM objects used will be limited as well. Also, when the session expired all the view that JSF keeps around in the session are discarded and with them the DOM objects as well.

        Show
        Mircea Toma added a comment - Profiling the showcase application doesn't reveal a memory leak in Xerces DOM implementation. The total size of com.sun.org.apache.xerces.internal.dom.ElementImpl instances will stay below ~16MB (in showcase ). Each view that JSF keeps around in the state (15 by default) will have a DOM document stored by ICEfaces in its associated map. This explains why navigating around, thus changing the views, will increase the number of DOM objects. Since the number of views are limited the number of DOM objects used will be limited as well. Also, when the session expired all the view that JSF keeps around in the session are discarded and with them the DOM objects as well.
        Hide
        Mircea Toma added a comment -

        Whenever the user session grows to much, because of the large amount of DOM objects stored in it, the best solution is to enable compress DOM feature. This will compress the DOM objects after each render into a format that uses relatively very little memory. See more here: http://www.icesoft.org/wiki/display/ICE/compressDOM .

        Show
        Mircea Toma added a comment - Whenever the user session grows to much, because of the large amount of DOM objects stored in it, the best solution is to enable compress DOM feature. This will compress the DOM objects after each render into a format that uses relatively very little memory. See more here: http://www.icesoft.org/wiki/display/ICE/compressDOM .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: