HTRACE-349. htrace-core4 implementation should use JDK7 try-with-resources (Mike Drob via cmccabe)
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 @@
@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 @@
@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 @@
*/
@SuppressWarnings("unchecked")
<T, V> 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 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 @@
* 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 @@
}
}
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 @@
} 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 void pretendRpcReceiveWithTraceInfo(SpanId parentId) {
- TraceScope s = tracer.newScope("received RPC", parentId);
- try {
+ try (TraceScope s = tracer.newScope("received RPC", parentId)) {
importantWork1();
- } finally {
- s.close();
}
}
}