https://issues.apache.org/bugzilla/show_bug.cgi?id=46686
Summary: FontCache.getDefaultCacheFile() method returns a non- existant file handle Product: Fop Version: all Platform: PC OS/Version: Linux Status: NEW Keywords: PatchAvailable Severity: normal Priority: P2 Component: fonts AssignedTo: fop-dev@xmlgraphics.apache.org ReportedBy: a...@jivesoftware.com CC: a...@jivesoftware.com Created an attachment (id=23243) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=23243) Patch to FontCache to use a fallback if the user directory is not writable Method getDefaultCacheFile() returns an invalid file handle because it doesn't check to see if the directory is writable. {code} private static File getUserHome() { String s = System.getProperty("user.home"); if (s != null) { File userDir = new File(s); if (userDir.exists()) { return userDir; } } return null; } /** * Returns the default font cache file. * @param forWriting true if the user directory should be created * @return the default font cache file */ public static File getDefaultCacheFile(boolean forWriting) { File userHome = getUserHome(); if (userHome != null) { File fopUserDir = new File(userHome, FOP_USER_DIR); if (forWriting) { fopUserDir.mkdir(); } return new File(fopUserDir, DEFAULT_CACHE_FILENAME); } return new File(FOP_USER_DIR); } {code} The method getUserHome() can return a directory that is not a writable directory. In most cases, the user who is running the webserver has access to user.home, but some in some environments, it is possible that user.home is not writable. Anyway, a simple way to fix it would be to fall back to a the java.io.tmpdir if the userHome is not writable. See attached patch that has that fix -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.