diff --git a/build.gradle b/build.gradle index 2d1b51242..a2b44b7ba 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.palantir.baseline:gradle-baseline-java:5.3.0' + classpath 'com.palantir.baseline:gradle-baseline-java:5.5.0' classpath 'com.palantir.gradle.consistentversions:gradle-consistent-versions:2.12.0' classpath 'com.palantir.gradle.externalpublish:gradle-external-publish-plugin:1.12.0' classpath 'com.palantir.gradle.gitversion:gradle-git-version:3.0.0' diff --git a/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsExecutorService.java b/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsExecutorService.java index 732fad70d..63e914ebd 100644 --- a/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsExecutorService.java +++ b/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsExecutorService.java @@ -133,6 +133,7 @@ private final class TaggedMetricsRunnable implements Runnable { } @Override + @SuppressWarnings("PreferJavaTimeOverload") // performance sensitive public void run() { stopQueueTimer(); running.inc(); @@ -168,6 +169,7 @@ private final class TaggedMetricsCallable implements Callable { } @Override + @SuppressWarnings("PreferJavaTimeOverload") // performance sensitive public T call() throws Exception { stopQueueTimer(); running.inc(); diff --git a/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsScheduledExecutorService.java b/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsScheduledExecutorService.java index 5f500635c..ec6acf0fe 100644 --- a/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsScheduledExecutorService.java +++ b/tritium-metrics/src/main/java/com/palantir/tritium/metrics/TaggedMetricsScheduledExecutorService.java @@ -130,6 +130,7 @@ private final class TaggedMetricsRunnable implements Runnable { } @Override + @SuppressWarnings("PreferJavaTimeOverload") // performance sensitive public void run() { running.inc(); long startNanos = System.nanoTime(); @@ -153,6 +154,7 @@ private final class TaggedMetricsScheduledRunnable implements Runnable { } @Override + @SuppressWarnings("PreferJavaTimeOverload") // performance sensitive public void run() { running.inc(); long startNanos = System.nanoTime(); @@ -178,6 +180,7 @@ private final class TaggedMetricsCallable implements Callable { } @Override + @SuppressWarnings("PreferJavaTimeOverload") // performance sensitive public T call() throws Exception { running.inc(); long startNanos = System.nanoTime(); diff --git a/tritium-slf4j/build.gradle b/tritium-slf4j/build.gradle index ffa4e9de8..8bb499240 100644 --- a/tritium-slf4j/build.gradle +++ b/tritium-slf4j/build.gradle @@ -16,6 +16,7 @@ dependencies { testImplementation 'org.assertj:assertj-core' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-params' testImplementation 'org.slf4j:slf4j-simple' } diff --git a/tritium-slf4j/src/main/java/com/palantir/tritium/event/log/LoggingInvocationEventHandler.java b/tritium-slf4j/src/main/java/com/palantir/tritium/event/log/LoggingInvocationEventHandler.java index 40d5b481e..9ba222766 100644 --- a/tritium-slf4j/src/main/java/com/palantir/tritium/event/log/LoggingInvocationEventHandler.java +++ b/tritium-slf4j/src/main/java/com/palantir/tritium/event/log/LoggingInvocationEventHandler.java @@ -28,9 +28,7 @@ import com.palantir.tritium.event.InvocationContext; import com.palantir.tritium.event.InvocationEventHandler; import java.lang.reflect.Method; -import java.time.Duration; import java.util.Collection; -import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -44,10 +42,10 @@ public class LoggingInvocationEventHandler extends AbstractInvocationEventHandle public static final com.palantir.tritium.api.functions.LongPredicate LOG_ALL_DURATIONS = _input -> true; public static final com.palantir.tritium.api.functions.LongPredicate LOG_DURATIONS_GREATER_THAN_1_MICROSECOND = - nanos -> TimeUnit.MICROSECONDS.convert(Duration.ofNanos(nanos)) > 1; + nanos -> nanos > 1000; public static final com.palantir.tritium.api.functions.LongPredicate LOG_DURATIONS_GREATER_THAN_0_MILLIS = - nanos -> TimeUnit.MILLISECONDS.convert(Duration.ofNanos(nanos)) > 0; + nanos -> nanos >= 1_000_000; public static final com.palantir.tritium.api.functions.LongPredicate NEVER_LOG = _input -> false; diff --git a/tritium-slf4j/src/test/java/com/palantir/tritium/event/log/LoggingInvocationEventHandlerTest.java b/tritium-slf4j/src/test/java/com/palantir/tritium/event/log/LoggingInvocationEventHandlerTest.java index 19ba900bb..2e9864605 100644 --- a/tritium-slf4j/src/test/java/com/palantir/tritium/event/log/LoggingInvocationEventHandlerTest.java +++ b/tritium-slf4j/src/test/java/com/palantir/tritium/event/log/LoggingInvocationEventHandlerTest.java @@ -31,6 +31,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.helpers.MessageFormatter; @@ -160,4 +162,32 @@ public void testBackwardCompatibility() { assertThat(new LoggingInvocationEventHandler(getLogger(), LoggingLevel.TRACE, legacyPredicate)) .isNotNull(); } + + @ParameterizedTest + @ValueSource(longs = {Long.MIN_VALUE, -1, 0, 1, 100, 1_000}) + void testLogDurationsLessThanOrEqualToOneMicrosecond(long nanoseconds) { + assertThat(LoggingInvocationEventHandler.LOG_DURATIONS_GREATER_THAN_1_MICROSECOND.test(nanoseconds)) + .isFalse(); + } + + @ParameterizedTest + @ValueSource(longs = {1_001, 1_000_000, Long.MAX_VALUE}) + void testLogDurationsGreaterThanOneMicrosecond(long nanoseconds) { + assertThat(LoggingInvocationEventHandler.LOG_DURATIONS_GREATER_THAN_1_MICROSECOND.test(nanoseconds)) + .isTrue(); + } + + @ParameterizedTest + @ValueSource(longs = {Long.MIN_VALUE, -1, 0, 1, 100, 1_000, 999_999}) + void testLogDurationsLessThanOrEqualToZeroMilliseconds(long nanoseconds) { + assertThat(LoggingInvocationEventHandler.LOG_DURATIONS_GREATER_THAN_0_MILLIS.test(nanoseconds)) + .isFalse(); + } + + @ParameterizedTest + @ValueSource(longs = {1_000_000, 1_000_001, 1_000_000_000, Long.MAX_VALUE}) + void testLogDurationsGreaterThanZeroMilliseconds(long nanoseconds) { + assertThat(LoggingInvocationEventHandler.LOG_DURATIONS_GREATER_THAN_0_MILLIS.test(nanoseconds)) + .isTrue(); + } }