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 "HUGHES Stephen (ATS)" <St...@dnrm.qld.gov.au> on 2017/06/16 00:12:59 UTC
fop 2.2 NullPointerException when linefeed-treatment="preserve" and
margins change
Hi all,
I have encountered a NullPointerException when rendering an fo to pdf using fop-2.2 on Windows 7 64-bit with JDK 1.8.0_74. I've attached a simple FO file that reproduces the exception. The command line I'm running is simply:
fop.bat error.fo -pdf error.pdf
Output (with stack trace) is below.
The exception seems to occur when fop encounters a block with linefeed-treatment="preserve" and a linefeed occurs at a page boundary where the left and/or right margins change. In the attached example, if I remove the block's linefeed-treatment="preserve" attribute, or set margin-right="20mm" for page_rest (so it's the same as page_first), the exception does not occur. I've also found that replacing the linefeed between the 3s and 4s with a space prevents the exception, but the line of 1s is reprinted at the top of the second page.
Thanks,
Stephen
Jun 16, 2017 8:45:33 AM org.apache.fop.cli.Main startFOP
SEVERE: Exception
org.apache.fop.apps.FOPException
java.lang.NullPointerException
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
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.AbstractBreaker.getRestartAtLM(AbstractBreaker.java:529)
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:436)
at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:141)
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:1102)
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:485)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
... 3 more
---------
java.lang.NullPointerException
at org.apache.fop.layoutmgr.AbstractBreaker.getRestartAtLM(AbstractBreaker.java:529)
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:436)
at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:141)
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:1102)
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:485)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
at org.apache.fop.cli.Main.startFOP(Main.java:186)
at org.apache.fop.cli.Main.main(Main.java:217)
------------------------------
The information in this email together with any attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. There is no waiver of any confidentiality/privilege by your inadvertent receipt of this material.
Any form of review, disclosure, modification, distribution and/or publication of this email message is prohibited, unless as a necessary part of Departmental business.
If you have received this message in error, you are asked to inform the sender as quickly as possible and delete this message and any copies of this message from your computer and/or your computer system network.
------------------------------
Re: fop 2.2 NullPointerException when linefeed-treatment="preserve"
and margins change
Posted by Chris <bo...@hotmail.com>.
Hi Stephen,
XSL-FO with changing IPDs between pages is known to have a few bugs.
Please log a bug in JIRA making sure to attach the XSL-FO File that
replicates the NPE.
Thanks,
Chris
On 16/06/2017 01:12, HUGHES Stephen (ATS) wrote:
>
> Hi all,
>
> I have encountered a NullPointerException when rendering an fo to pdf
> using fop-2.2 on Windows 7 64-bit with JDK 1.8.0_74. I've attached a
> simple FO file that reproduces the exception. The command line I'm
> running is simply:
>
> fop.bat error.fo -pdf error.pdf
>
> Output (with stack trace) is below.
>
> The exception seems to occur when fop encounters a block with
> linefeed-treatment="preserve" and a linefeed occurs at a page boundary
> where the left and/or right margins change. In the attached example,
> if I remove the block's linefeed-treatment="preserve" attribute, or
> set margin-right="20mm" for page_rest (so it's the same as
> page_first), the exception does not occur. I’ve also found that
> replacing the linefeed between the 3s and 4s with a space prevents the
> exception, but the line of 1s is reprinted at the top of the second page.
>
> Thanks,
>
> Stephen
>
> Jun 16, 2017 8:45:33 AM org.apache.fop.cli.Main startFOP
>
> SEVERE: Exception
>
> org.apache.fop.apps.FOPException
>
> java.lang.NullPointerException
>
> at
> org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
>
> at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
>
> 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.AbstractBreaker.getRestartAtLM(AbstractBreaker.java:529)
>
> at
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:436)
>
> at
> org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
>
> at
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:141)
>
> 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:1102)
>
> 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:485)
>
> at
> org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
>
> ... 3 more
>
> ---------
>
> java.lang.NullPointerException
>
> at
> org.apache.fop.layoutmgr.AbstractBreaker.getRestartAtLM(AbstractBreaker.java:529)
>
> at
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:436)
>
> at
> org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
>
> at
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:141)
>
> 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:1102)
>
> 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:485)
>
> at
> org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
>
> at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
>
> at org.apache.fop.cli.Main.startFOP(Main.java:186)
>
> at org.apache.fop.cli.Main.main(Main.java:217)
>
> ------------------------------
> The information in this email together with any attachments is
> intended only for the person or entity to which it is addressed and
> may contain confidential and/or privileged material. There is no
> waiver of any confidentiality/privilege by your inadvertent receipt of
> this material.
> Any form of review, disclosure, modification, distribution and/or
> publication of this email message is prohibited, unless as a necessary
> part of Departmental business.
> If you have received this message in error, you are asked to inform
> the sender as quickly as possible and delete this message and any
> copies of this message from your computer and/or your computer system
> network.
> ------------------------------