Details

    • Type: Bug Bug
    • Status: Reopened
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.2
    • Fix Version/s: 2.1.11
    • Component/s: * Cocoon Core
    • Labels:
      None
    • Environment:
      Operating System: Windows XP
      Platform: PC

      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

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              Ronald Blaschke
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:

                Development