[jira] [Closed] (FOP-3012) Using Various Fonts to Achieve Multiple Languages Sometimes Results in Errors
[ https://issues.apache.org/jira/browse/FOP-3012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Bowditch closed FOP-3012. --- Resolution: Duplicate Closing as a Duplicate of FOP-2977 > Using Various Fonts to Achieve Multiple Languages Sometimes Results in Errors > - > > Key: FOP-3012 > URL: https://issues.apache.org/jira/browse/FOP-3012 > Project: FOP > Issue Type: Bug >Affects Versions: 2.6 >Reporter: Martin Furek >Priority: Major > > 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) -- This
[jira] [Comment Edited] (FOP-3012) Using Various Fonts to Achieve Multiple Languages Sometimes Results in Errors
[ https://issues.apache.org/jira/browse/FOP-3012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17519660#comment-17519660 ] J Frank edited comment on FOP-3012 at 4/11/22 2:32 PM: --- Patch attached to FOP-2977 resolves this issue. was (Author: jagruti.fr...@gmail.com): Patch works for this bug > Using Various Fonts to Achieve Multiple Languages Sometimes Results in Errors > - > > Key: FOP-3012 > URL: https://issues.apache.org/jira/browse/FOP-3012 > Project: FOP > Issue Type: Bug >Affects Versions: 2.6 >Reporter: Martin Furek >Priority: Major > > 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