RE: Absent markers throw a ClassCastException in LineLM

2004-11-15 Thread Andreas L. Delmelle
> -Original Message-
> From: Simon Pepping [mailto:[EMAIL PROTECTED]
> On Sun, Nov 14, 2004 at 10:11:01PM +0100, Andreas L. Delmelle wrote:
> >
> > While running some tests after updating to include
> > Luca's latest patch (bugzilla 31206),
> > I get a ClassCastException in LineLM.getNextBreakPoss()
> > line 409:

>
> All LMs which are a child of LineLM should implement
> InlineLevelLM. LineLM collects all child LMs of a block which generate
> inline areas, and indeed, generating inline areas should be synonym
> with implementing InlineLevelLM. This presumes that there is a strict
> separation between block and inline area generating LMs.
>
> For RetrieveMarkerLM that separation is not so clear. I think it has
> to implement InlineLevelLM, otherwise it cannot act as a child of
> LineLM, at the penalty that you noticed.
>

Thanks for the pointer. It sure is a very interesting puzzle... since in
essence it is replaced by the children of the fo:marker, which can be
inlines as well as blocks (theoretically even one or more fo:table
structures :-/)

Greetz,

Andreas



Re: Absent markers throw a ClassCastException in LineLM

2004-11-15 Thread Simon Pepping
On Sun, Nov 14, 2004 at 10:11:01PM +0100, Andreas L. Delmelle wrote:
> 
> 
> Hi,
> 
> (Reporting this here, since for some reason can't connect to
> nagoya.apache.org... is it just me or does anyone else have this problem
> too?)
> 
> While running some tests after updating to include Luca's latest patch
> (bugzilla 31206), I get a ClassCastException in LineLM.getNextBreakPoss()
> line 409:
> 
> while((curLM = (InlineLevelLayoutManager) getChildLM()) != null)
> 
> This seems to be due to an fo:retrieve-marker that cannot find a
> corresponding fo:marker in the current page, since I get the message
> 
> found no marker with name: {marker-class-name}
> 
> immediately before the Exception is thrown.

Before committing Luca's patch I noticed the same problem with
BasicLinkLM. There the solution was to make BasicLinkLM extend
InlineLM, so that it implements InlineLevelLM.

All LMs which are a child of LineLM should implement
InlineLevelLM. LineLM collects all child LMs of a block which generate
inline areas, and indeed, generating inline areas should be synonym
with implementing InlineLevelLM. This presumes that there is a strict
separation between block and inline area generating LMs.

For RetrieveMarkerLM that separation is not so clear. I think it has
to implement InlineLevelLM, otherwise it cannot act as a child of
LineLM, at the penalty that you noticed.

Regards, Simon
 
-- 
Simon Pepping
home page: http://www.leverkruid.nl



RE: Absent markers throw a ClassCastException in LineLM

2004-11-15 Thread Andreas L. Delmelle

Moving this issue to bugzilla.

> -Original Message-
> From: Andreas L. Delmelle [mailto:[EMAIL PROTECTED]
> 
> (Reporting this here, since for some reason can't connect to
> nagoya.apache.org... is it just me or does anyone else have this problem
> too?)
>