Uploaded image for project: 'FOP'
  1. FOP
  2. FOP-1625

[PATCH] FontCache.getDefaultCacheFile() method returns a non-existant file handle

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Resolution: Fixed
    • 2.5
    • None
    • font/unqualified
    • Operating System: Linux
      Platform: PC
    • 46686

    Description

      Method getDefaultCacheFile() returns an invalid file handle because it doesn't check to see if the directory is writable.

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

      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

      Attachments

        1. temp_dir_fallback.patch
          2 kB
          Alok Singh

        Activity

          People

            fop-dev@xmlgraphics.apache.org fop-dev
            alok@jivesoftware.com Alok Singh
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: