Details
-
Type: Bug
-
Status: Closed
-
Priority: 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
-
Assignee Priority:P2
-
Support Case References:Support Case #13694 - https://icesoft.my.salesforce.com/5007000001YsXSD
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.
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.
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.