Mercurial > hg > jdk9-shenandoah > nashorn
changeset 1347:0ab539479b95
8130424: if directory specified with --dest-dir does not exist, only .class files are dumped and .js files are not
Reviewed-by: attila, lagergren, hannesw
author | sundar |
---|---|
date | Fri, 03 Jul 2015 18:41:58 +0530 |
parents | d017877b3b8c |
children | d91200b39779 |
files | src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/DumpBytecode.java src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Source.java |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/DumpBytecode.java Thu Jul 02 16:09:43 2015 -0700 +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/DumpBytecode.java Fri Jul 03 18:41:58 2015 +0530 @@ -88,7 +88,7 @@ } - // should code be dumped to disk - only valid in compile_only mode? + // should code be dumped to disk if (env._dest_dir != null) { final String fileName = className.replace('.', File.separatorChar) + ".class"; final int index = fileName.lastIndexOf(File.separatorChar);
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Source.java Thu Jul 02 16:09:43 2015 -0700 +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Source.java Fri Jul 03 18:41:58 2015 +0530 @@ -995,7 +995,7 @@ return initLogger(Context.getContextTrusted()); } - private File dumpFile(final String dir) { + private File dumpFile(final File dirFile) { final URL u = getURL(); final StringBuilder buf = new StringBuilder(); // make it unique by prefixing current date & time @@ -1010,11 +1010,17 @@ buf.append(getName()); } - return new File(dir, buf.toString()); + return new File(dirFile, buf.toString()); } void dump(final String dir) { - final File file = dumpFile(dir); + final File dirFile = new File(dir); + final File file = dumpFile(dirFile); + if (!dirFile.exists() && !dirFile.mkdirs()) { + debug("Skipping source dump for " + name); + return; + } + try (final FileOutputStream fos = new FileOutputStream(file)) { final PrintWriter pw = new PrintWriter(fos); pw.print(data.toString());