# HG changeset patch # User hannesw # Date 1396539313 -7200 # Node ID e461495852b70505b76b955e9c5294c431e08939 # Parent 7c0614b75e23a03bfc674724d6377195880a2550 8039181: Persistent code store does not use absolute paths internally Reviewed-by: sundar, lagergren diff -r 7c0614b75e23 -r e461495852b7 nashorn/src/jdk/nashorn/internal/runtime/CodeStore.java --- a/nashorn/src/jdk/nashorn/internal/runtime/CodeStore.java Wed Apr 02 18:26:57 2014 +0200 +++ b/nashorn/src/jdk/nashorn/internal/runtime/CodeStore.java Thu Apr 03 17:35:13 2014 +0200 @@ -70,16 +70,16 @@ * @throws IOException */ public CodeStore(final String path, final int minSize) throws IOException { - this.dir = new File(path); + this.dir = checkDirectory(path); this.minSize = minSize; - checkDirectory(this.dir); } - private static void checkDirectory(final File dir) throws IOException { + private static File checkDirectory(final String path) throws IOException { try { - AccessController.doPrivileged(new PrivilegedExceptionAction() { + return AccessController.doPrivileged(new PrivilegedExceptionAction() { @Override - public Void run() throws IOException { + public File run() throws IOException { + final File dir = new File(path).getAbsoluteFile(); if (!dir.exists() && !dir.mkdirs()) { throw new IOException("Could not create directory: " + dir); } else if (!dir.isDirectory()) { @@ -87,7 +87,7 @@ } else if (!dir.canRead() || !dir.canWrite()) { throw new IOException("Directory not readable or writable: " + dir); } - return null; + return dir; } }); } catch (PrivilegedActionException e) {