< prev index next >

src/jdk.jfr/share/classes/jdk/jfr/internal/settings/PeriodSetting.java

Print this page

        

*** 56,69 **** this.eventType = Objects.requireNonNull(eventType); } @Override public String combine(Set<String> values) { ! long min = Long.MAX_VALUE; boolean beginChunk = false; boolean endChunk = false; ! String text = EVERY_CHUNK; for (String value : values) { switch (value) { case EVERY_CHUNK: beginChunk = true; endChunk = true; --- 56,70 ---- this.eventType = Objects.requireNonNull(eventType); } @Override public String combine(Set<String> values) { ! boolean beginChunk = false; boolean endChunk = false; ! Long min = null; ! String text = null; for (String value : values) { switch (value) { case EVERY_CHUNK: beginChunk = true; endChunk = true;
*** 73,99 **** break; case END_CHUNK: endChunk = true; break; default: ! long l = Utils.parseTimespan(value); if (l < min) { text = value; min = l; } } } ! if (min != Long.MAX_VALUE) { return text; } if (beginChunk && !endChunk) { return BEGIN_CHUNK; } if (!beginChunk && endChunk) { return END_CHUNK; } ! return text; } @Override public void setValue(String value) { switch (value) { --- 74,107 ---- break; case END_CHUNK: endChunk = true; break; default: ! long l = Utils.parseTimespanWithInfinity(value); ! // Always accept first specified value ! if (min == null) { ! text = value; ! min = l; ! } else { if (l < min) { text = value; min = l; } } } ! } ! // A specified interval trumps *_CHUNK ! if (min != null) { return text; } if (beginChunk && !endChunk) { return BEGIN_CHUNK; } if (!beginChunk && endChunk) { return END_CHUNK; } ! return EVERY_CHUNK; // also default } @Override public void setValue(String value) { switch (value) {
*** 105,115 **** break; case END_CHUNK: eventType.setPeriod(0, false, true); break; default: ! eventType.setPeriod(Utils.parseTimespan(value) / 1_000_000, false, false); } this.value = value; } @Override --- 113,128 ---- break; case END_CHUNK: eventType.setPeriod(0, false, true); break; default: ! long nanos = Utils.parseTimespanWithInfinity(value); ! if (nanos != Long.MAX_VALUE) { ! eventType.setPeriod(nanos / 1_000_000, false, false); ! } else { ! eventType.setPeriod(Long.MAX_VALUE, false, false); ! } } this.value = value; } @Override
< prev index next >