From ee0b2d1e3621d89010cef2c040a62e2978eec8a6 Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Tue, 4 Sep 2012 09:52:01 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[NOBTS]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@576 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../com/profiler/context/DeadlineSpanMap.java | 5 ++- src/main/java/com/profiler/context/Span.java | 11 +++++++ src/main/java/com/profiler/context/Trace.java | 33 +++++++++---------- .../com/profiler/util/TestClassLoader.java | 23 ++++++++----- 4 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/profiler/context/DeadlineSpanMap.java b/src/main/java/com/profiler/context/DeadlineSpanMap.java index 63bd31466..5f82c0d74 100644 --- a/src/main/java/com/profiler/context/DeadlineSpanMap.java +++ b/src/main/java/com/profiler/context/DeadlineSpanMap.java @@ -21,7 +21,10 @@ public class DeadlineSpanMap { span = new Span(traceId, null, null); map.put(traceIdKey, span); - timer.schedule(new FlushTimedoutSpanTask(span), FLUSH_TIMEOUT); + TimerTask task = new FlushTimedoutSpanTask(span); + span.setTimerTask(task); + + timer.schedule(task, FLUSH_TIMEOUT); } return spanUpdater.updateSpan(span); diff --git a/src/main/java/com/profiler/context/Span.java b/src/main/java/com/profiler/context/Span.java index 2204fde12..1fecc7d0d 100644 --- a/src/main/java/com/profiler/context/Span.java +++ b/src/main/java/com/profiler/context/Span.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.TimerTask; /** * @@ -23,6 +24,16 @@ public class Span { private final List annotations = new ArrayList(5); private final Set annotationValues = new HashSet(5); + private TimerTask timerTask; + + public void setTimerTask(TimerTask task) { + this.timerTask = task; + } + + public boolean cancelTimer() { + return timerTask.cancel(); + } + public Span(TraceID traceId, String name, EndPoint endPoint) { this.traceID = traceId; this.name = name; diff --git a/src/main/java/com/profiler/context/Trace.java b/src/main/java/com/profiler/context/Trace.java index 43f314da2..d33ad32b8 100644 --- a/src/main/java/com/profiler/context/Trace.java +++ b/src/main/java/com/profiler/context/Trace.java @@ -42,14 +42,14 @@ public final class Trace { return id; } - public static boolean removeTraceId() { - TraceID traceID = traceId.get(); - if(traceID != null) { - traceId.remove(); - return true; - } - return false; - } + public static boolean removeTraceId() { + TraceID traceID = traceId.get(); + if (traceID != null) { + traceId.remove(); + return true; + } + return false; + } /** * Get current TraceID. If it was not set this will return null. @@ -92,9 +92,10 @@ public final class Trace { System.out.println("\n\nWrite span hash=" + span.hashCode() + ", value=" + span + ", spanMap.size=" + spanMap.size() + ", threadid=" + Thread.currentThread().getId() + "\n\n"); DataSender.getInstance().addDataToSend(span.toThrift()); + + span.cancelTimer(); } catch (Exception e) { - e.printStackTrace(); - logger.log(Level.SEVERE, e.getMessage()); + logger.log(Level.SEVERE, e.getMessage(), e); } } @@ -125,8 +126,7 @@ public final class Trace { } }); } catch (Exception e) { - e.printStackTrace(); - logger.log(Level.SEVERE, e.getMessage()); + logger.log(Level.SEVERE, e.getMessage(), e); } } @@ -150,8 +150,7 @@ public final class Trace { } }); } catch (Exception e) { - e.printStackTrace(); - logger.log(Level.SEVERE, e.getMessage()); + logger.log(Level.SEVERE, e.getMessage(), e); } } @@ -169,8 +168,7 @@ public final class Trace { } }); } catch (Exception e) { - e.printStackTrace(); - logger.log(Level.SEVERE, e.getMessage()); + logger.log(Level.SEVERE, e.getMessage(), e); } } @@ -187,8 +185,7 @@ public final class Trace { } }); } catch (Exception e) { - e.printStackTrace(); - logger.log(Level.SEVERE, e.getMessage()); + logger.log(Level.SEVERE, e.getMessage(), e); } } } \ No newline at end of file diff --git a/src/test/java/com/profiler/util/TestClassLoader.java b/src/test/java/com/profiler/util/TestClassLoader.java index c1d8eeb91..a5cbeebd5 100644 --- a/src/test/java/com/profiler/util/TestClassLoader.java +++ b/src/test/java/com/profiler/util/TestClassLoader.java @@ -1,18 +1,23 @@ package com.profiler.util; -import com.profiler.StopWatch; -import com.profiler.context.Annotation; -import com.profiler.context.Trace; -import com.profiler.interceptor.*; -import com.profiler.interceptor.bci.ByteCodeInstrumentor; -import com.profiler.interceptor.bci.JavaAssistByteCodeInstrumentor; -import com.profiler.modifier.Modifier; -import com.profiler.modifier.db.ConnectionTrace; +import java.util.logging.Logger; + import javassist.CannotCompileException; import javassist.Loader; import javassist.NotFoundException; -import java.util.logging.Logger; +import com.profiler.StopWatch; +import com.profiler.context.Annotation; +import com.profiler.context.Trace; +import com.profiler.interceptor.Interceptor; +import com.profiler.interceptor.InterceptorRegistry; +import com.profiler.interceptor.StaticAfterInterceptor; +import com.profiler.interceptor.StaticAroundInterceptor; +import com.profiler.interceptor.StaticBeforeInterceptor; +import com.profiler.interceptor.bci.ByteCodeInstrumentor; +import com.profiler.interceptor.bci.JavaAssistByteCodeInstrumentor; +import com.profiler.modifier.Modifier; +import com.profiler.modifier.db.ConnectionTrace; public class TestClassLoader extends Loader { private final Logger logger = Logger.getLogger(TestClassLoader.class.getName());