Hi Vincent,

first of all, thanks for your reply.

Il giorno 13/ott/08, alle ore 13:27, Vincent Hennebert ha scritto:

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.

Probably it isn't an infinite loop, but the debug code that I forgot to comment out... The patch adds in RenderPagesModel.java many calls to the garbage collector and this makes FOP running very slow. Anyway, I've run junit, I didn't checked the direct output (there are many FATAL, WARN and other messages also in trunk) but I looked at junit-reports. At the first run with patched FOP I obtained tons of errors in layout manager tests, but it seems to me that those are due to the fact that junit checks the areaTree generated to see if the result is correct, while I voluntarily freed some part of the areaTree. So I switched the render model from the cached to the classical one while leaving unchanged the rest of the patch: in this way the areaTree doesn't get collected while the LMs loose the pointer to the areas, so the test *should* be valid anyway. With the classical renderer no error were reported.


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
moment.

If I understood correctly, the parentArea of a LM instance points to a new area each time it's called to create areas for a new page: a table that spans in 10 pages will point to 10 areas in the instance life time. So freeing parentArea shouldn't be a problem. The LMs I free are the LineLM (and, obviously, relative children): by definition, they shouldn't span in many pages. Am I correct?

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:
http://wiki.apache.org/xmlgraphics-fop/FOPIDESetupGuide

... sorry ;)


Dario

Reply via email to