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