MATLAB: Does Polyspace CodeProver generate incomplete reports

codeprovergeneratorjava.optspolyspacePolyspace Code ProverPolyspace Code Prover Serverreport

I'm observing an issue where reports generated by Polyspace Code Prover in the PDF format seem truncated. I occasionally observe the following error message:
 
Polyspace Report Generator
Generating Report
Template : D:\Program Files\MATLAB\R2017b\toolbox\polyspace\psrptgen\templates\Developer.rpt
Results-dir : D:\Projects\TA1902S-AD-Master\CodeProver_Sandbox_WSP\Complete-AD-Master\CP_Result_TA1902S-AD-Master_Complete-AD-Master_04_01_2018_13_07_1
Format : dom-pdf-direct
Output-Name : D:\Projects\TA1902S-AD-Master\CodeProver_Sandbox_WSP\Complete-AD-Master\CP_Result_TA1902S-AD-Master_Complete-AD-Master_04_01_2018_13_07_1\PolySpace-Doc\TA1902S-AD-Master_Developer.pdf
Beginning report
Processing Summary
Processing Polyspace proven
Processing Metrics Summary
Processing MISRA2012 summary
Processing MISRA2012 violations
Processing Polyspace Proven Run-Time Violations checks
Processing Polyspace Proven Unreachable Code Branches checks
Processing Polyspace unreachable functions
Processing Polyspace Unproven Run-Time Checks checks
Processing Global Variables
Processing Configuration
Processing Abbreviations and Acronyms
Converting report
Document conversion failed. Java exception occurred: java.lang.OutOfMemoryError: Java heap space at org.apache.fop.layoutmgr.inline.TextLayoutManager.<init>(TextLayoutManager.java:145) at org.apache.fop.layoutmgr.LayoutManagerMapping$FOTextLayoutManagerMaker.make(LayoutManagerMapping.java:249) at org.apache.fop.layoutmgr.LayoutManagerMapping.makeLayoutManagers(LayoutManagerMapping.java:175) at org.apache.fop.layoutmgr.AbstractLayoutManager.createChildLMs(AbstractLayoutManager.java:223) at org.apache.fop.layoutmgr.AbstractLayoutManager.createNextChildLMs(AbstractLayoutManager.java:251) at org.apache.fop.layoutmgr.LMiter.hasNext(LMiter.java:47) at org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:116) at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:45) at org.apache.fop.layoutmgr.inline.InlineStackingLayoutManager.getBreakBefore(InlineStackingLayoutManager.java:391) at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:49) at org.apache.fop.layoutmgr.inline.InlineStackingLayoutManager.getBreakBefore(InlineStackingLayoutManager.java:391) at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:49) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getBreakBefore(BlockStackingLayoutManager.java:1079) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.addKnuthElementsForBreakBefore(BlockStackingLayoutManager.java:1057) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.breakBeforeServed(BlockStackingLayoutManager.java:458) at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:257) at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:115) at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:107) at org.apache.fop.layoutmgr.table.TableCellLayoutManager.getNextKnuthElements(TableCellLayoutManager.java:224) at org.apache.fop.layoutmgr.table.TableContentLayoutManager.determineWidthOfPrimary(TableContentLayoutManager.java:1021) at org.apache.fop.layoutmgr.table.TableContentLayoutManager.iterateOverTableRows(TableContentLayoutManager.java:987) at org.apache.fop.layoutmgr.table.TableContentLayoutManager.determineAutoLayoutWidths(TableContentLayoutManager.java:936) at org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:279) 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:251) at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:770) 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:389)
Error using rptgen.utils.FOPProxy/foToPDFImpl (line 200)
Java exception occurred:
java.lang.OutOfMemoryError: Java heap space
at org.apache.fop.layoutmgr.inline.TextLayoutManager.<init>(TextLayoutManager.java:145)
at org.apache.fop.layoutmgr.LayoutManagerMapping$FOTextLayoutManagerMaker.make(LayoutManagerMapping.java:249)
at org.apache.fop.layoutmgr.LayoutManagerMapping.makeLayoutManagers(LayoutManagerMapping.java:175)
at org.apache.fop.layoutmgr.AbstractLayoutManager.createChildLMs(AbstractLayoutManager.java:223)
at org.apache.fop.layoutmgr.AbstractLayoutManager.createNextChildLMs(AbstractLayoutManager.java:251)
at org.apache.fop.layoutmgr.LMiter.hasNext(LMiter.java:47)
at org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:116)
at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:45)
at org.apache.fop.layoutmgr.inline.InlineStackingLayoutManager.getBreakBefore(InlineStackingLayoutManager.java:391)
at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:49)
at org.apache.fop.layoutmgr.inline.InlineStackingLayoutManager.getBreakBefore(InlineStackingLayoutManager.java:391)
at org.apache.fop.layoutmgr.BreakOpportunityHelper.getBreakBefore(BreakOpportunityHelper.java:49)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getBreakBefore(BlockStackingLayoutManager.java:1079)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.addKnuthElementsForBreakBefore(BlockStackingLayoutManager.java:1057)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.breakBeforeServed(BlockStackingLayoutManager.java:458)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:257)
at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:115)
at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:107)
at org.apache.fop.layoutmgr.table.TableCellLayoutManager.getNextKnuthElements(TableCellLayoutManager.java:224)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.determineWidthOfPrimary(TableContentLayoutManager.java:1021)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.iterateOverTableRows(TableContentLayoutManager.java:987)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.determineAutoLayoutWidths(TableContentLayoutManager.java:936)
at org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:279)
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:251)
at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:770)
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:389)
Error in rptgen.utils.FOPProxy.foToPDF (line 84)
Error in rpt_xml.db_output/convertReport>locRunDB2DOMEngine (line 264)
Error in rpt_xml.db_output/convertReport (line 31)
Error in rptgen.coutline/makeDocumentPost (line 40)
Error in rptgen.coutline/execute (line 21)

Best Answer

The error message can be resolved by modifying the Java.opts file located in C:\Program Files\MATLAB\R2017b\polyspace\bin\win64. Consider increasing the Java Heap memory in the Java.opts file to a high value so as to ensure generation of complete reports. Should you wish to set the Java heap memory to 16 GB, you would use the following command: 
 
-Xmx16384m
Alternatively, you could also consider generating reports in other formats like HTML or DOC.