Fop fails to resolve embedded fonts after update from 2.6 to 2.7

Stefan Kleinbaum <[email protected]>
Newsgroups gmane.text.xml.fop.user
Message-ID <CAEg3bcry3tHoZ_d+Hy7fB+6zH8Qujvc0mm-mQ2_sqxx-O2dG8A@mail.gmail.com>
Hi!

I've googled for breaking changes of an apache fop 2.6 -> 2.7 update, but I
have got nowhere.

After a fop update from 2.6 to 2.7, my application fails to resolve
embedded font files from the jar classpath. A resolver is registered at
"new FopFactoryBuilder(new File(".").toURI(), resolver)",
"transformerFactory.setUriResolver(resolver)" and
"transformer.setURIResolver(resolver)" but get's not called on embedded
fonts. However, this stacktrace is printed:

SEVERE: Failed to read font file myProject/fonts/myFont.ttf (No such file
or directory)
java.io.FileNotFoundException: <basePath (from new
File("."))>/myProject/fonts/myFont.ttf (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at
sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at
sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at java.net.URL.openStream(URL.java:1045)
at
org.apache.fop.apps.io.ResourceResolverFactory$NormalResourceResolver.getResource(ResourceResolverFactory.java:224)
at
org.apache.fop.apps.io.ResourceResolverFactory$TempAwareResourceResolver.getResource(ResourceResolverFactory.java:152)
at
org.apache.fop.apps.io.ResourceResolverFactory$DefaultResourceResolver.getResource(ResourceResolverFactory.java:121)
at
org.apache.fop.apps.io.InternalResourceResolver.getResource(InternalResourceResolver.java:92)
at org.apache.fop.fonts.truetype.OFFontLoader.read(OFFontLoader.java:113)
at org.apache.fop.fonts.truetype.OFFontLoader.read(OFFontLoader.java:103)
at org.apache.fop.fonts.FontLoader.getFont(FontLoader.java:126)
at org.apache.fop.fonts.FontLoader.loadFont(FontLoader.java:110)
at org.apache.fop.fonts.LazyFont.load(LazyFont.java:121)
at org.apache.fop.fonts.LazyFont.getAscender(LazyFont.java:237)
at org.apache.fop.fonts.Font.getAscender(Font.java:120)
at
org.apache.fop.layoutmgr.BlockLayoutManager.initialize(BlockLayoutManager.java:82)
at
org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLM(AbstractLayoutManager.java:118)
at
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:108)
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.DelegatingFOEventHandler.endPageSequence(DelegatingFOEventHandler.java:114)
at
org.apache.fop.accessibility.fo.FO2StructureTreeConverter.endPageSequence(FO2StructureTreeConverter.java:184)
at
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:140)
at
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:390)
at org.apache.fop.fo.FOTreeBuilder$3.run(FOTreeBuilder.java:207)
at org.apache.fop.fo.FOTreeBuilder$3.run(FOTreeBuilder.java:204)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:203)
at
org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:263)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1401)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)

How can I reenable font resolving in fop 2.7?

Thanks
Stefan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.