[ https://issues.apache.org/jira/browse/FOP-2146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17117576#comment-17117576 ]
Simon Steiner commented on FOP-2146: ------------------------------------ I think you use EnvironmentalProfileFactory.createRestrictedIO to disable font caching {code:java} String fopxconf = "<fop version=\"1.0\"></fop>"; ResourceResolver cloudResourceResolver = ResourceResolverFactory.createDefaultResourceResolver(); FopFactoryBuilder confBuilder = new FopConfParser(new ByteArrayInputStream(fopxconf.getBytes()), EnvironmentalProfileFactory.createRestrictedIO(new File(".").toURI(), cloudResourceResolver)).getFopFactoryBuilder(); FopFactory fopFactory = confBuilder.build(); FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); FileOutputStream fos = new FileOutputStream("out.png"); Fop fop = fopFactory.newFop("image/png", foUserAgent, fos); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); Source src = new StreamSource(new ByteArrayInputStream(fo.getBytes())); Result res = new SAXResult(fop.getDefaultHandler()); transformer.transform(src, res); fos.close(); {code} > Wrong FontCache-Directory used for not existing userHome in > FontCache.getDefaultCacheFile() (Bug 47786 was not fixed correctly) > ------------------------------------------------------------------------------------------------------------------------------- > > Key: FOP-2146 > URL: https://issues.apache.org/jira/browse/FOP-2146 > Project: FOP > Issue Type: Bug > Components: font/unqualified > Affects Versions: 1.1 > Environment: Operating System: All > Platform: All > Reporter: mg > > Method getDefaultCacheFile() returns an invalid file name if the user has no > home directory set. In that case the name of the fop user directory > (FOP_USER_DIR!) is returned and not the name of the cache file > (DEFAULT_CACHE_FILENAME). > Wrong Code: > public static File getDefaultCacheFile(boolean forWriting) { > File userHome = getUserHome(); > if (userHome != null) { > File fopUserDir = new File(userHome, FOP_USER_DIR); > if (forWriting) { > boolean writable = fopUserDir.canWrite(); > if (!fopUserDir.exists()) { > writable = fopUserDir.mkdir(); > } > if (!writable) { > userHome = getTempDirectory(); > fopUserDir = new File(userHome, FOP_USER_DIR); > fopUserDir.mkdir(); > } > } > return new File(fopUserDir, DEFAULT_CACHE_FILENAME); > } > return new File(FOP_USER_DIR); > } > If getUserHome() does not return a directory the default name must be > returned (and not the name of the directory): > return new File(DEFAULT_CACHE_FILENAME); -- This message was sent by Atlassian Jira (v8.3.4#803005)