src/jdk.jfr/share/classes/jdk/jfr/internal/Utils.java
changeset 52901 3ba9ff4d4aaf
parent 52850 f527b24990d7
child 53013 c8b2a408628b
equal deleted inserted replaced
52900:2998e6d76879 52901:3ba9ff4d4aaf
    63 import jdk.jfr.internal.settings.StackTraceSetting;
    63 import jdk.jfr.internal.settings.StackTraceSetting;
    64 import jdk.jfr.internal.settings.ThresholdSetting;
    64 import jdk.jfr.internal.settings.ThresholdSetting;
    65 
    65 
    66 public final class Utils {
    66 public final class Utils {
    67 
    67 
       
    68     private static final String INFINITY = "infinity";
       
    69 
    68     private static Boolean SAVE_GENERATED;
    70     private static Boolean SAVE_GENERATED;
    69 
    71 
    70     public static final String EVENTS_PACKAGE_NAME = "jdk.jfr.events";
    72     public static final String EVENTS_PACKAGE_NAME = "jdk.jfr.events";
    71     public static final String INSTRUMENT_PACKAGE_NAME = "jdk.jfr.internal.instrument";
    73     public static final String INSTRUMENT_PACKAGE_NAME = "jdk.jfr.internal.instrument";
    72     public static final String HANDLERS_PACKAGE_NAME = "jdk.jfr.internal.handlers";
    74     public static final String HANDLERS_PACKAGE_NAME = "jdk.jfr.internal.handlers";
   115 
   117 
   116     public static String formatTimespan(Duration dValue, String separation) {
   118     public static String formatTimespan(Duration dValue, String separation) {
   117         if (dValue == null) {
   119         if (dValue == null) {
   118             return "0";
   120             return "0";
   119         }
   121         }
   120 
       
   121         long value = dValue.toNanos();
   122         long value = dValue.toNanos();
   122         TimespanUnit result = TimespanUnit.NANOSECONDS;
   123         TimespanUnit result = TimespanUnit.NANOSECONDS;
   123         for (TimespanUnit unit : TimespanUnit.values()) {
   124         for (TimespanUnit unit : TimespanUnit.values()) {
   124             result = unit;
   125             result = unit;
   125             long amount = unit.amount;
   126             long amount = unit.amount;
   127                 break;
   128                 break;
   128             }
   129             }
   129             value /= amount;
   130             value /= amount;
   130         }
   131         }
   131         return String.format("%d%s%s", value, separation, result.text);
   132         return String.format("%d%s%s", value, separation, result.text);
       
   133     }
       
   134 
       
   135     public static long parseTimespanWithInfinity(String s) {
       
   136         if (INFINITY.equals(s)) {
       
   137             return Long.MAX_VALUE;
       
   138         }
       
   139         return parseTimespan(s);
   132     }
   140     }
   133 
   141 
   134     public static long parseTimespan(String s) {
   142     public static long parseTimespan(String s) {
   135         if (s.endsWith("ns")) {
   143         if (s.endsWith("ns")) {
   136             return Long.parseLong(s.substring(0, s.length() - 2).trim());
   144             return Long.parseLong(s.substring(0, s.length() - 2).trim());