2017-11-20 23 views
1

Fop.0.9.4で印刷します。 Windows 10システム。 Xmlファイル1.5メガバイト(それほど大きくない)。 XMLファイルに大きなファイルでFOPがクラッシュするのはなぜですか?

この構造:

<root> 
<element /> 
<element /> 
<element /> 
<element /> 
... 3000 elements or more 
</root> 

XSLTファイルでFOPが働いているが、501ページ以上の印刷がクラッシュした場合に比べ、500ページのカウントが少ない場合は、我々は

<for-each select="root/element"> 
<block-container> 
    <some-simple-elements> 
</block-container> 
</for-each> 

を書きます。ログオン

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
at java.util.Arrays.copyOf(Unknown Source) 
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) 
at java.lang.AbstractStringBuilder.append(Unknown Source) 
at java.lang.StringBuffer.append(Unknown Source) 
at org.apache.fop.layoutmgr.AbstractLayoutManager.addChildLM(AbstractLayoutManager.java:317) 
at org.apache.fop.layoutmgr.AbstractLayoutManager.addChildLMs(AbstractLayoutManager.java:331) 
at org.apache.fop.layoutmgr.AbstractLayoutManager.createNextChildLMs(AbstractLayoutManager.java:291) 
at org.apache.fop.layoutmgr.LMiter.hasNext(LMiter.java:40) 
at org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:115) 
at org.apache.fop.layoutmgr.table.TableCellLayoutManager.getNextKnuthElements(TableCellLayoutManager.java:162) 
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.createElementsForRowGroup(TableContentLayoutManager.java:490) 
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:251) 
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:179) 
at org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:243) 
at org.apache.fop.layoutmgr.BlockContainerLayoutManager$BlockContainerBreaker.getNextKnuthElements(BlockContainerLayoutManager.java:612) 
at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:551) 
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:301) 
at org.apache.fop.layoutmgr.BlockContainerLayoutManager.getNextKnuthElementsAbsolute(BlockContainerLayoutManager.java:509) 
at org.apache.fop.layoutmgr.BlockContainerLayoutManager.getNextKnuthElements(BlockContainerLayoutManager.java:195) 
at org.apache.fop.layoutmgr.StaticContentLayoutManager$StaticContentBreaker.getNextKnuthElements(StaticContentLayoutManager.java:317) 
at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:551) 
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:301) 
at org.apache.fop.layoutmgr.StaticContentLayoutManager.doLayout(StaticContentLayoutManager.java:239) 
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.layoutSideRegion(PageSequenceLayoutManager.java:407) 
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:415) 
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.makeNewPage(PageSequenceLayoutManager.java:377) 
at org.apache.fop.layoutmgr.PageBreaker.handleBreakTrait(PageBreaker.java:492) 
at org.apache.fop.layoutmgr.PageBreaker.startPart(PageBreaker.java:398) 
at org.apache.fop.layoutmgr.AbstractBreaker.addAreas(AbstractBreaker.java:420) 
at org.apache.fop.layoutmgr.AbstractBreaker.addAreas(AbstractBreaker.java:370) 
at org.apache.fop.layoutmgr.PageBreaker.doPhase3(PageBreaker.java:262) 
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:345) 

答えて

1

OOMまたはOOME(OutOfMemoryErrorが)単にJVMがメモリを使い果たしたことを意味します。これが発生すると、基本的に2つの選択肢があります。

  • -Xmx VM引数を使用してJVMがより多くのメモリを使用できるようにします。たとえば、JVMが1 GB(1024 MB)のメモリを使用できるようにするには、

  • メモリを少なくするようにアプリケーションを改善/修正します。 moer情報については は、このリンクを介して

http://www.mkyong.com/eclipse/eclipse-java-lang-outofmemoryerror-java-heap-space/

を行ってください
関連する問題