Repository: calcite Updated Branches: refs/heads/master 72b2cfb79 -> de7759112
[CALCITE-1085] Use a NoopContext singleton in NoopTimer Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/de775911 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/de775911 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/de775911 Branch: refs/heads/master Commit: de7759112cea3deb8a1c75bcc43753adbe8648de Parents: 72b2cfb Author: Josh Elser <[email protected]> Authored: Thu Feb 11 18:17:19 2016 -0500 Committer: Josh Elser <[email protected]> Committed: Thu Feb 11 18:17:19 2016 -0500 ---------------------------------------------------------------------- .../org/apache/calcite/avatica/metrics/noop/NoopTimer.java | 8 +++++--- .../calcite/avatica/metrics/noop/NoopMetricsSystemTest.java | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/de775911/avatica-metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java ---------------------------------------------------------------------- diff --git a/avatica-metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java b/avatica-metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java index 879da64..a45cd63 100644 --- a/avatica-metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java +++ b/avatica-metrics/src/main/java/org/apache/calcite/avatica/metrics/noop/NoopTimer.java @@ -24,14 +24,16 @@ import org.apache.calcite.avatica.metrics.Timer.Context; */ public class NoopTimer implements Timer { - @Override public Context start() { - return new NoopContext(); + private static final NoopContext CONTEXT = new NoopContext(); + + @Override public NoopContext start() { + return CONTEXT; } /** * {@link Context} which does nothing. */ - public class NoopContext implements Context { + public static class NoopContext implements Context { @Override public void close() {} http://git-wip-us.apache.org/repos/asf/calcite/blob/de775911/avatica-metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java ---------------------------------------------------------------------- diff --git a/avatica-metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java b/avatica-metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java index cda453c..f28d123 100644 --- a/avatica-metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java +++ b/avatica-metrics/src/test/java/org/apache/calcite/avatica/metrics/noop/NoopMetricsSystemTest.java @@ -50,6 +50,8 @@ public class NoopMetricsSystemTest { Timer timer = metrics.getTimer("timer"); Context context = timer.start(); context.close(); + Context contextTwo = timer.start(); + assertTrue("Timer's context should be a singleton", context == contextTwo); Meter meter = metrics.getMeter("meter"); meter.mark();
