src/jdk.jfr/share/classes/jdk/jfr/internal/Utils.java
changeset 50745 a390cbb82d47
parent 50113 caf115bb98ad
child 52334 a181612f0715
equal deleted inserted replaced
50744:6c306d54366d 50745:a390cbb82d47
    41 import java.lang.reflect.InvocationTargetException;
    41 import java.lang.reflect.InvocationTargetException;
    42 import java.lang.reflect.Method;
    42 import java.lang.reflect.Method;
    43 import java.lang.reflect.Modifier;
    43 import java.lang.reflect.Modifier;
    44 import java.nio.file.Path;
    44 import java.nio.file.Path;
    45 import java.time.Duration;
    45 import java.time.Duration;
       
    46 import java.time.LocalDateTime;
    46 import java.util.ArrayList;
    47 import java.util.ArrayList;
    47 import java.util.Arrays;
    48 import java.util.Arrays;
    48 import java.util.Collections;
    49 import java.util.Collections;
    49 import java.util.HashMap;
    50 import java.util.HashMap;
    50 import java.util.List;
    51 import java.util.List;
    53 
    54 
    54 import jdk.internal.org.objectweb.asm.ClassReader;
    55 import jdk.internal.org.objectweb.asm.ClassReader;
    55 import jdk.internal.org.objectweb.asm.util.CheckClassAdapter;
    56 import jdk.internal.org.objectweb.asm.util.CheckClassAdapter;
    56 import jdk.jfr.Event;
    57 import jdk.jfr.Event;
    57 import jdk.jfr.FlightRecorderPermission;
    58 import jdk.jfr.FlightRecorderPermission;
       
    59 import jdk.jfr.Recording;
    58 import jdk.jfr.RecordingState;
    60 import jdk.jfr.RecordingState;
    59 import jdk.jfr.internal.handlers.EventHandler;
    61 import jdk.jfr.internal.handlers.EventHandler;
    60 import jdk.jfr.internal.settings.PeriodSetting;
    62 import jdk.jfr.internal.settings.PeriodSetting;
    61 import jdk.jfr.internal.settings.StackTraceSetting;
    63 import jdk.jfr.internal.settings.StackTraceSetting;
    62 import jdk.jfr.internal.settings.ThresholdSetting;
    64 import jdk.jfr.internal.settings.ThresholdSetting;
   482             return Collections.singletonList(list.get(0));
   484             return Collections.singletonList(list.get(0));
   483         }
   485         }
   484         return Collections.unmodifiableList(list);
   486         return Collections.unmodifiableList(list);
   485     }
   487     }
   486 
   488 
   487     public static void updateSettingPathToGcRoots(Map<String, String> settings, Boolean pathToGcRoots) {
       
   488         if (pathToGcRoots != null) {
       
   489             settings.put(Type.EVENT_NAME_PREFIX + "OldObjectSample#cutoff", pathToGcRoots ? "infinity" : "0 ns" );
       
   490         }
       
   491     }
       
   492 
       
   493 
       
   494     public static String upgradeLegacyJDKEvent(String eventName) {
   489     public static String upgradeLegacyJDKEvent(String eventName) {
   495         if (eventName.length() <= LEGACY_EVENT_NAME_PREFIX.length()) {
   490         if (eventName.length() <= LEGACY_EVENT_NAME_PREFIX.length()) {
   496             return eventName;
   491             return eventName;
   497         }
   492         }
   498         if (eventName.startsWith(LEGACY_EVENT_NAME_PREFIX)) {
   493         if (eventName.startsWith(LEGACY_EVENT_NAME_PREFIX)) {
   501                 return Type.EVENT_NAME_PREFIX + eventName.substring(index + 1);
   496                 return Type.EVENT_NAME_PREFIX + eventName.substring(index + 1);
   502             }
   497             }
   503         }
   498         }
   504         return eventName;
   499         return eventName;
   505     }
   500     }
       
   501 
       
   502     public static String makeFilename(Recording recording) {
       
   503         String pid = JVM.getJVM().getPid();
       
   504         String date = Repository.REPO_DATE_FORMAT.format(LocalDateTime.now());
       
   505         String idText = recording == null ? "" :  "-id-" + Long.toString(recording.getId());
       
   506         return "hotspot-" + "pid-" + pid + idText + "-" + date + ".jfr";
       
   507     }
   506 }
   508 }