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