diff --git a/htrace-core4/src/main/java/org/apache/htrace/core/TraceCallable.java b/htrace-core4/src/main/java/org/apache/htrace/core/TraceCallable.java index a0fec17..f5434e1 100644 --- a/htrace-core4/src/main/java/org/apache/htrace/core/TraceCallable.java +++ b/htrace-core4/src/main/java/org/apache/htrace/core/TraceCallable.java @@ -41,12 +41,8 @@ public class TraceCallable implements Callable { @Override public V call() throws Exception { - TraceScope chunk = tracer.newScope(description, - parent.getSpan().getSpanId()); - try { + try (TraceScope chunk = tracer.newScope(description, parent.getSpan().getSpanId())) { return impl.call(); - } finally { - chunk.close(); } } diff --git a/htrace-core4/src/main/java/org/apache/htrace/core/TraceRunnable.java b/htrace-core4/src/main/java/org/apache/htrace/core/TraceRunnable.java index 8f98708..abf530f 100644 --- a/htrace-core4/src/main/java/org/apache/htrace/core/TraceRunnable.java +++ b/htrace-core4/src/main/java/org/apache/htrace/core/TraceRunnable.java @@ -39,12 +39,8 @@ public class TraceRunnable implements Runnable { @Override public void run() { - TraceScope chunk = tracer.newScope(description, - parent.getSpan().getSpanId()); - try { + try (TraceScope chunk = tracer.newScope(description, parent.getSpan().getSpanId())) { runnable.run(); - } finally { - chunk.close(); } } diff --git a/htrace-core4/src/main/java/org/apache/htrace/core/Tracer.java b/htrace-core4/src/main/java/org/apache/htrace/core/Tracer.java index a683716..29fd14e 100644 --- a/htrace-core4/src/main/java/org/apache/htrace/core/Tracer.java +++ b/htrace-core4/src/main/java/org/apache/htrace/core/Tracer.java @@ -464,19 +464,15 @@ public class Tracer implements Closeable { */ @SuppressWarnings("unchecked") T createProxy(final T instance) { - final Tracer tracer = this; InvocationHandler handler = new InvocationHandler() { @Override public Object invoke(Object obj, Method method, Object[] args) throws Throwable { - TraceScope scope = tracer.newScope(method.getName()); - try { + try (TraceScope scope = Tracer.this.newScope(method.getName());) { return method.invoke(instance, args); } catch (Throwable ex) { ex.printStackTrace(); throw ex; - } finally { - scope.close(); } } }; diff --git a/htrace-core4/src/test/java/org/apache/htrace/core/TraceCreator.java b/htrace-core4/src/test/java/org/apache/htrace/core/TraceCreator.java index b843999..43fda9e 100644 --- a/htrace-core4/src/test/java/org/apache/htrace/core/TraceCreator.java +++ b/htrace-core4/src/test/java/org/apache/htrace/core/TraceCreator.java @@ -34,20 +34,14 @@ public class TraceCreator { } public void createSampleRpcTrace() { - TraceScope s = tracer.newScope(RPC_TRACE_ROOT); - try { + try (TraceScope s = tracer.newScope(RPC_TRACE_ROOT)) { pretendRpcSend(); - } finally { - s.close(); } } public void createSimpleTrace() { - TraceScope s = tracer.newScope(SIMPLE_TRACE_ROOT); - try { + try (TraceScope s = tracer.newScope(SIMPLE_TRACE_ROOT)) { importantWork1(); - } finally { - s.close(); } } @@ -55,8 +49,7 @@ public class TraceCreator { * Creates the demo trace (will create different traces from call to call). */ public void createThreadedTrace() { - TraceScope s = tracer.newScope(THREADED_TRACE_ROOT); - try { + try (TraceScope s = tracer.newScope(THREADED_TRACE_ROOT)) { Random r = ThreadLocalRandom.current(); int numThreads = r.nextInt(4) + 1; Thread[] threads = new Thread[numThreads]; @@ -74,31 +67,23 @@ public class TraceCreator { } } importantWork1(); - } finally { - s.close(); } } private void importantWork1() { - TraceScope cur = tracer.newScope("important work 1"); - try { + try (TraceScope cur = tracer.newScope("important work 1")) { Thread.sleep((long) (2000 * Math.random())); importantWork2(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - } finally { - cur.close(); } } private void importantWork2() { - TraceScope cur = tracer.newScope("important work 2"); - try { + try (TraceScope cur = tracer.newScope("important work 2")) { Thread.sleep((long) (2000 * Math.random())); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - } finally { - cur.close(); } } @@ -113,13 +98,10 @@ public class TraceCreator { } catch (InterruptedException ie) { Thread.currentThread().interrupt(); } catch (ArithmeticException ae) { - TraceScope c = tracer.newScope("dealing with arithmetic exception."); - try { + try (TraceScope c = tracer.newScope("dealing with arithmetic exception.")) { Thread.sleep((long) (3000 * Math.random())); } catch (InterruptedException ie1) { Thread.currentThread().interrupt(); - } finally { - c.close(); } } } @@ -131,11 +113,8 @@ public class TraceCreator { } public void pretendRpcReceiveWithTraceInfo(SpanId parentId) { - TraceScope s = tracer.newScope("received RPC", parentId); - try { + try (TraceScope s = tracer.newScope("received RPC", parentId)) { importantWork1(); - } finally { - s.close(); } } }