DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=36162>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36162

           Summary: Possible Memory Leak with LinkRewriterTransformer
           Product: Cocoon 2
           Version: Current SVN 2.2
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: blocks
        AssignedTo: dev@cocoon.apache.org
        ReportedBy: [EMAIL PROTECTED]


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

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to