You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Oliver Schulz <wh...@users.sf.net> on 2001/09/10 00:44:19 UTC

[Patch] Bug 3497

I already posted this fix (on friday). However, it seems
to have been lost in the great void, because i can't find
it in the archive (http://xml.apache.org/mail/fop-dev/200109).
Sorry, if this should be a double.


Bug 3497: "id already exists error" when using span="all" attribute

Reason: if a BodyAreaContainer is not balanced, Block.layout(...)
is called a second time for the same Block due to the rollback:
---
[in src/org/apache/fop/fo/flow/Flow.java]

            if (bac.isBalancingRequired(fo)) {
                // reset the the just-done span area in preparation
                // for a backtrack for balancing
                bac.resetSpanArea();

                this.rollback(markerSnapshot);
                // one less because of the "continue"
                i = this.marker - 1;
                continue;
            }
---

Block.layout checks if the block-id already exists (which it
does, of course, from the first time) und fails with the error.
(Might this be broken in similar places too?)

I've attached a diff with the fix.

cu
Oliver

Re: [Patch] Bug 3497

Posted by Keiron Liddle <ke...@aftexsw.com>.
This patch will fix the problem described but it may cause other problems.
The id references really need to be handled properly as part of the
redesign.

This patch may cause some links, page references to not work properly in
certain situations.

On Mon, 10 Sep 2001 00:44:19 Oliver Schulz wrote:
> I already posted this fix (on friday). However, it seems
> to have been lost in the great void, because i can't find
> it in the archive (http://xml.apache.org/mail/fop-dev/200109).
> Sorry, if this should be a double.
> 
> 
> Bug 3497: "id already exists error" when using span="all" attribute
> 
> Reason: if a BodyAreaContainer is not balanced, Block.layout(...)
> is called a second time for the same Block due to the rollback:
> ---
> [in src/org/apache/fop/fo/flow/Flow.java]
> 
>             if (bac.isBalancingRequired(fo)) {
>                 // reset the the just-done span area in preparation
>                 // for a backtrack for balancing
>                 bac.resetSpanArea();
> 
>                 this.rollback(markerSnapshot);
>                 // one less because of the "continue"
>                 i = this.marker - 1;
>                 continue;
>             }
> ---
> 
> Block.layout checks if the block-id already exists (which it
> does, of course, from the first time) und fails with the error.
> (Might this be broken in similar places too?)
> 
> I've attached a diff with the fix.
> 
> cu
> Oliver

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org