--- old/src/jdk.jfr/share/classes/jdk/jfr/internal/settings/CutoffSetting.java 2018-11-29 21:49:50.011982700 +0100 +++ new/src/jdk.jfr/share/classes/jdk/jfr/internal/settings/CutoffSetting.java 2018-11-29 21:49:48.061932700 +0100 @@ -28,11 +28,11 @@ import java.util.Objects; import java.util.Set; -import jdk.jfr.BooleanFlag; import jdk.jfr.Description; import jdk.jfr.Label; import jdk.jfr.MetadataDefinition; import jdk.jfr.Name; +import jdk.jfr.Timespan; import jdk.jfr.internal.Control; import jdk.jfr.internal.PlatformEventType; import jdk.jfr.internal.Type; @@ -42,7 +42,7 @@ @Label("Cutoff") @Description("Limit running time of event") @Name(Type.SETTINGS_PREFIX + "Cutoff") -@BooleanFlag +@Timespan public final class CutoffSetting extends Control { private final static long typeId = Type.getTypeId(CutoffSetting.class); @@ -59,7 +59,7 @@ long max = 0; String text = "0 ns"; for (String value : values) { - long l = parseValue(value); + long l = Utils.parseTimespanWithInfinity(value); if (l > max) { text = value; max = l; @@ -70,15 +70,11 @@ @Override public void setValue(String value) { - long l = parseValue(value); + long l = Utils.parseTimespanWithInfinity(value); this.value = value; eventType.setCutoff(l); } - private long parseValue(String value) { - return isInfinity(value) ? Long.MAX_VALUE : Utils.parseTimespan(value); - } - @Override public String getValue() { return value; @@ -88,16 +84,12 @@ return CutoffSetting.typeId == typeId; } - private static boolean isInfinity(String s) { - return s.equals("infinity"); - } - public static long parseValueSafe(String value) { if (value == null) { return 0L; } try { - return isInfinity(value) ? Long.MAX_VALUE : Utils.parseTimespan(value); + return Utils.parseTimespanWithInfinity(value); } catch (NumberFormatException nfe) { return 0L; }