libbluray | branch: master | tourettes <[email protected]> | Thu Mar 5 22:13:08 2015 +0200| [78c374250c87d0681e72695b37208cb6e870b27f] | committer: hpi1
Change baseDir in CacheDir class to handle 8.3 file name convention in Windows Java can use 8.3 file name convention when asked for the OS temporary folder. > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=78c374250c87d0681e72695b37208cb6e870b27f --- src/libbluray/bdj/java/org/videolan/CacheDir.java | 24 +++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/libbluray/bdj/java/org/videolan/CacheDir.java b/src/libbluray/bdj/java/org/videolan/CacheDir.java index 8118bb4..817928e 100644 --- a/src/libbluray/bdj/java/org/videolan/CacheDir.java +++ b/src/libbluray/bdj/java/org/videolan/CacheDir.java @@ -30,7 +30,21 @@ class CacheDir { return LockFile.create(path + File.separator + "lock"); } - private static void cleanupCache() { + private static void InitializeBaseDir() throws IOException { + if (baseDir == null) { + try { + File tmpDir = new File(System.getProperty("java.io.tmpdir"), "libbluray-bdj-cache"); + baseDir = new File(tmpDir.getCanonicalPath()); + } + catch (IOException e) { + logger.error("Error in initializing baseDir " + e); + throw e; + } + } + } + + private static void cleanupCache() throws IOException { + InitializeBaseDir(); String[] files = BDFileSystem.nativeList(baseDir); if (files != null) { for (int i = 0; i < files.length; i++) { @@ -54,9 +68,11 @@ class CacheDir { BDJSecurityManager sm = (BDJSecurityManager)System.getSecurityManager(); if (sm != null) { - sm.setCacheRoot(System.getProperty("java.io.tmpdir")); + InitializeBaseDir(); + File tmpDir = new File(System.getProperty("java.io.tmpdir")); + sm.setCacheRoot(tmpDir.getCanonicalPath()); baseDir.mkdirs(); - sm.setCacheRoot(baseDir.getPath()); + sm.setCacheRoot(baseDir.getCanonicalPath()); } cleanupCache(); @@ -147,6 +163,6 @@ class CacheDir { private static File cacheRoot = null; private static LockFile lockFile = null; - private static final File baseDir = new File(System.getProperty("java.io.tmpdir"), "libbluray-bdj-cache"); + private static File baseDir = null; private static final Logger logger = Logger.getLogger(CacheDir.class.getName()); } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
