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

Using Various Fonts to Achieve Multiple Languages Sometimes Results in Errors

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.6
    • None
    • None
    • None

    Description

      Reporting this bug based on: http://apache-fop.1065347.n5.nabble.com/Using-Various-Fonts-to-Achieve-Multiple-Languages-Sometimes-Results-in-Errors-td47985.html 

      Example: https://drive.google.com/file/d/1QUDI31mUmkqvSrSWdoCkI2taGYd8teu6/view?usp=sharing

      I am using multiple fonts SansSerif,NotoSans,NotoSansCJK,Symbola to
      get Chinese, Greek and Emoji characters. I need to support multiple
      languages with mixed text (latin in Chinese and other way around). I
      never know beforehand where the text is. This works with multiple
      fonts, but sometimes throws an error:

      java.lang.ArrayIndexOutOfBoundsException: Index 13 out of bounds for length 13
      at org.apache.fop.fonts.GlyphMapping.processWordMapping(GlyphMapping.java:172)
      at org.apache.fop.fonts.GlyphMapping.doGlyphMapping(GlyphMapping.java:92)
      at org.apache.fop.layoutmgr.inline.TextLayoutManager.processWord(TextLayoutManager.java:960)
      at org.apache.fop.layoutmgr.inline.TextLayoutManager.getNextKnuthElements(TextLayoutManager.java:819)
      at org.apache.fop.layoutmgr.inline.LineLayoutManager.collectInlineKnuthElements(LineLayoutManager.java:698)
      at org.apache.fop.layoutmgr.inline.LineLayoutManager.getNextKnuthElements(LineLayoutManager.java:627)
      at org.apache.fop.layoutmgr.BlockLayoutManager.getNextChildElements(BlockLayoutManager.java:141)
      at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:292)
      at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:113)
      at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:105)
      at org.apache.fop.layoutmgr.FlowLayoutManager.getNextChildElements(FlowLayoutManager.java:223)
      at org.apache.fop.layoutmgr.FlowLayoutManager.addChildElements(FlowLayoutManager.java:148)
      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:675)
      at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:179)
      at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:159)
      at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:385)
      at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:113)
      at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:143)
      at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
      at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:139)
      at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:362)
      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:183)
      at org.apache.fop.cli.Main.main(Main.java:214)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              TheEngineer Martin Furek
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: