src/jdk.jfr/share/classes/jdk/jfr/internal/ShutdownHook.java
changeset 50745 a390cbb82d47
parent 50113 caf115bb98ad
child 59226 a0f39cc47387
--- a/src/jdk.jfr/share/classes/jdk/jfr/internal/ShutdownHook.java	Sun Jun 24 16:25:47 2018 +0100
+++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/ShutdownHook.java	Mon Jun 25 02:07:42 2018 +0200
@@ -26,12 +26,10 @@
 package jdk.jfr.internal;
 
 import java.io.IOException;
-import java.nio.file.Paths;
 import java.security.AccessControlContext;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
-import java.time.LocalDateTime;
 
 import jdk.jfr.RecordingState;
 
@@ -67,9 +65,10 @@
             WriteableUserPath dest = recording.getDestination();
             if (dest == null) {
                 dest = makeDumpOnExitPath(recording);
+                recording.setDestination(dest);
             }
             if (dest != null) {
-                recording.stop("Dump on exit", dest);
+                recording.stop("Dump on exit");
             }
         } catch (Exception e) {
             Logger.log(LogTag.JFR, LogLevel.DEBUG, () -> "Could not dump recording " + recording.getName() + " on exit.");
@@ -78,23 +77,21 @@
 
     private WriteableUserPath makeDumpOnExitPath(PlatformRecording recording) {
         try {
-            String pid = JVM.getJVM().getPid();
-            String dfText = Repository.REPO_DATE_FORMAT.format(LocalDateTime.now());
-            String name = "hotspot-" + "pid-" + pid + "-id-" + recording.getId() + "-" + dfText + ".jfr";
+            String name = Utils.makeFilename(recording.getRecording());
             AccessControlContext acc = recording.getNoDestinationDumpOnExitAccessControlContext();
             return AccessController.doPrivileged(new PrivilegedExceptionAction<WriteableUserPath>() {
                 @Override
                 public WriteableUserPath run() throws Exception {
-                    return new WriteableUserPath(Paths.get(".", name));
+                    return new WriteableUserPath(recording.getDumpOnExitDirectory().toPath().resolve(name));
                 }
             }, acc);
         } catch (PrivilegedActionException e) {
             Throwable t = e.getCause();
             if (t instanceof SecurityException) {
-                Logger.log(LogTag.JFR, LogLevel.WARN, "Not allowed to create dump path for recording " + recording.getId() + " on exit. " + e.getMessage());
+                Logger.log(LogTag.JFR, LogLevel.WARN, "Not allowed to create dump path for recording " + recording.getId() + " on exit.");
             }
             if (t instanceof IOException) {
-                Logger.log(LogTag.JFR, LogLevel.WARN, "Could not dump " + recording.getId() + " on exit. " + e.getMessage());
+                Logger.log(LogTag.JFR, LogLevel.WARN, "Could not dump " + recording.getId() + " on exit.");
             }
             return null;
         }