Uploaded image for project: 'FOP'
  1. FOP
  2. FOP-2496

fop2.0 crashes if docbook <note> is last inside a <listitem> or a <step>. No bug in fop1.1

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 2.0
    • Fix Version/s: None
    • Component/s: renderer/pdf
    • Labels:
      None

      Description

      fop2.0 crashes if docbook <note> is last inside a <listitem> or a <step>. No bug in fop1.1

      This works in fop1.1 and it is good docbook syntax and should not be a problem.

      A workaround, that also shows the problem, is to insert an empty <para> between </note> and </listitem), or directly in the .fo file, insert an extra <fo:block></fo.block>.
      We are now forced to use this workaround in the building scripts - not nice!

      Appended:

      • note-problem-fop2.0-listitem-crash.fo = Small example .fo file with a note last in a listitem
      • note-problem-fop2.0-listitem-workaround-patched.fo = Workaround-patched .fo file (listitem)
      • note-problem-fop2.0-step-crash.fo = Small example .fo file with a note last in a step
      • note-problem-fop2.0-step-workaround-patched.fo = Workaround-patched .fo file (step)

      The fop CRASH log is below:

      INFO: Rendered page #1.
      INFO: Rendered page #2.
      Jul 8, 2015 8:18:06 PM org.apache.fop.cli.Main startFOP
      SEVERE: Exception
      java.lang.NullPointerException
      at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:288)
      at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
      at org.apache.fop.cli.Main.startFOP(Main.java:186)
      at org.apache.fop.cli.Main.main(Main.java:217)
      Caused by: java.lang.NullPointerException
      at org.apache.fop.layoutmgr.list.ListItemLayoutManager.getCombinedKnuthElementsForListItem(ListItemLayoutManager.java:405)
      at org.apache.fop.layoutmgr.list.ListItemLayoutManager.getNextKnuthElements(ListItemLayoutManager.java:326)
      at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:239)
      at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextChildElements(BlockStackingLayoutManager.java:498)
      at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:289)
      at org.apache.fop.layoutmgr.list.ListBlockLayoutManager.getNextKnuthElements(ListBlockLayoutManager.java:103)
      at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:239)
      at org.apache.fop.layoutmgr.FlowLayoutManager.getNextChildElements(FlowLayoutManager.java:223)
      at org.apache.fop.layoutmgr.FlowLayoutManager.addChildElements(FlowLayoutManager.java:147)
      at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:116)
      at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:69)
      at org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:252)
      at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:643)
      at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:178)
      at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:158)
      at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:384)
      at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
      at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:138)
      at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
      at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:130)
      at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360)
      at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
      at org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1101)
      at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
      at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown Source)
      at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
      at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
      at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:285)
      ... 3 more

        Attachments

        1. note-problem-fop2.0-listitem-crash.fo
          52 kB
          Lennart Johansson
        2. note-problem-fop2.0-listitem-workaround-patched.fo
          52 kB
          Lennart Johansson
        3. note-problem-fop2.0-step-crash.fo
          52 kB
          Lennart Johansson
        4. note-problem-fop2.0-step-workaround-patched.fo
          52 kB
          Lennart Johansson

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ljo Lennart Johansson
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: