Hi Dario,

Dario Laera wrote:
> Hi all,
> I wrote a patch that fixes a memory leak making FOP freeing areaTree
> memory after rendering (or caching) a page within a page-sequence
> processing: with this patch since the first page areaTree has been
> completed, the memory consumption is almost constant until the end of
> the page-sequence. With some more lines of code that frees ChildContext
> and some peripherals LM the amount of memory used even decreases.
> I didn't get any error in the test I run, I ask the list if this patch
> do have side effects I didn't catch. In particular, it seems to me that
> the changes in BlockLM and LineLM are the more unsafe.

A good way to test your modifications is by running the test suite:
    ant junit
While this doesn’t assure you that your patch is 100% correct, this at
least gives you a good indication. Now, if I run the test suite on
a patched Trunk I have an infinite loop somewhere, so there seems to be
a problem in your modifications. You’re probably too aggressive in
freeing objects that are actually re-used. Note that the addAreas method
are called once per page on which the object relies; so you have to be
careful to not release information that may still be needed for
following pages. Sorry I can’t study your changes in more details at the

As a side note, watch for tab characters in your source files; they are
illegal in the FOP project. Don’t forget to run checkstyle before
submitting a patch. See here for information about how to set up the
Checkstyle plugin in various development environment:


Reply via email to