[ http://issues.apache.org/jira/browse/COCOON-1574?page=all ]
Ralph Goers updated COCOON-1574: -------------------------------- Bugzilla Id: (was: 36162) Component: * Cocoon Core (was: Blocks: (Undefined)) Description: I'm currently looking into a memory leak issue at Apache Forrest. Forrest's site currently needs to be built with -Xmx128m because of this. I believe the issue is originated at Cocoon's LinkRewriterTransformer or XMLFileModule. A memory profiler shows lots (30MB+) of DOM DocumentImpls (150+ objects), which get referenced by XMLFileModule.DocumentHelper. Their URIs are linkmap-xxx. LinkRewriterTransformer#createTransformedLink(String) uses a InputModuleHelper, which seems to reference a XMLFileModule. ... newLink = (String) modHelper.getAttribute(this.objectModel, ^^^^^^^^^ ... The XMLFileModule keeps the visited documents in a map, which is where they build up. Just for testing, I changed XMLFileModule#getDocumentHelper(Configuration) from this.documents.put(src, new DocumentHelper(reload, cache, src, this)); to return new DocumentHelper(reload, cache, src, this); Thus, a new DocumentHelper is created every time, instead of caching them. The result: No more memory problems, Apache Forrest's site builds again with -Xmx32. Ron was: I'm currently looking into a memory leak issue at Apache Forrest. Forrest's site currently needs to be built with -Xmx128m because of this. I believe the issue is originated at Cocoon's LinkRewriterTransformer or XMLFileModule. A memory profiler shows lots (30MB+) of DOM DocumentImpls (150+ objects), which get referenced by XMLFileModule.DocumentHelper. Their URIs are linkmap-xxx. LinkRewriterTransformer#createTransformedLink(String) uses a InputModuleHelper, which seems to reference a XMLFileModule. ... newLink = (String) modHelper.getAttribute(this.objectModel, ^^^^^^^^^ ... The XMLFileModule keeps the visited documents in a map, which is where they build up. Just for testing, I changed XMLFileModule#getDocumentHelper(Configuration) from this.documents.put(src, new DocumentHelper(reload, cache, src, this)); to return new DocumentHelper(reload, cache, src, this); Thus, a new DocumentHelper is created every time, instead of caching them. The result: No more memory problems, Apache Forrest's site builds again with -Xmx32. Ron > Memory Leak with XMLFileModule > ------------------------------ > > Key: COCOON-1574 > URL: http://issues.apache.org/jira/browse/COCOON-1574 > Project: Cocoon > Type: Bug > Components: * Cocoon Core > Versions: 2.2-dev (Current SVN) > Environment: Operating System: Windows XP > Platform: PC > Reporter: Ron Blaschke > Assignee: Cocoon Developers Team > > I'm currently looking into a memory leak issue at Apache Forrest. Forrest's > site currently needs to be built with -Xmx128m because of this. I believe the > issue is originated at Cocoon's LinkRewriterTransformer or XMLFileModule. > A memory profiler shows lots (30MB+) of DOM DocumentImpls (150+ objects), > which > get referenced by XMLFileModule.DocumentHelper. Their URIs are linkmap-xxx. > LinkRewriterTransformer#createTransformedLink(String) uses a > InputModuleHelper, > which seems to reference a XMLFileModule. > ... > newLink = (String) modHelper.getAttribute(this.objectModel, > ^^^^^^^^^ > ... > The XMLFileModule keeps the visited documents in a map, which is where they > build up. > Just for testing, I changed XMLFileModule#getDocumentHelper(Configuration) > from > this.documents.put(src, new DocumentHelper(reload, cache, src, this)); > to > return new DocumentHelper(reload, cache, src, this); > Thus, a new DocumentHelper is created every time, instead of caching them. > The > result: No more memory problems, Apache Forrest's site builds again with > -Xmx32. > Ron -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira