https://issues.apache.org/bugzilla/show_bug.cgi?id=54051

          Priority: P2
            Bug ID: 54051
          Assignee: fop-dev@xmlgraphics.apache.org
           Summary: Wrong FontCache-Directory used for not existing
                    userHome in FontCache.getDefaultCacheFile() (Bug 47786
                    was not fixed correctly)
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: m...@abas.de
          Hardware: All
            Status: NEW
           Version: 1.1
         Component: fonts
           Product: Fop

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);

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to