diff --git a/build.xml b/build.xml
index 02e5a2a1b..ef527131d 100644
--- a/build.xml
+++ b/build.xml
@@ -11,6 +11,7 @@
+
diff --git a/src/main/java/com/profiler/context/DefaultTrace.java b/src/main/java/com/profiler/context/DefaultTrace.java
index a6359d319..eeac6dbf4 100644
--- a/src/main/java/com/profiler/context/DefaultTrace.java
+++ b/src/main/java/com/profiler/context/DefaultTrace.java
@@ -270,9 +270,32 @@ public final class DefaultTrace implements Trace {
return parsingResult;
}
+// 재발할 경우 좀더 정확한 원인분석을 위해 과거 NullPointException 발생 로그의 일부를 첨부함.
+// 2013-04-30 11:34:58 [DEBUG](db.interceptor.PreparedStatementBindVariableInterceptor) after com.mysql.jdbc.JDBC4PreparedStatement@1f31ad9: /* testquery */ delete from member where id = -1334720425 com.mysql.jdbc.PreparedStatement setInt(int, int) args:(1, -1334720425) result:null
+// 2013-04-30 11:34:58 [DEBUG](db.interceptor.PreparedStatementBindVariableInterceptor) after com.mysql.jdbc.JDBC4PreparedStatement@1f31ad9: /* testquery */ delete from member where id = -1334720425 com.mysql.jdbc.PreparedStatement setObject(int, java.lang.Object) args:(1, -1334720425) result:null
+// 2013-04-30 11:34:58 [DEBUG](db.interceptor.PreparedStatementExecuteQueryInterceptor) before com.mysql.jdbc.JDBC4PreparedStatement@1f31ad9: /* testquery */ delete from member where id = -1334720425 com.mysql.jdbc.PreparedStatement executeUpdate() args:null
+// 2013-04-30 11:34:58 [WARN ](db.interceptor.PreparedStatementExecuteQueryInterceptor)
+// java.lang.NullPointerException
+// at com.profiler.context.DefaultTrace.recordSqlParsingResult(DefaultTrace.java:275)
+// at com.profiler.modifier.db.interceptor.PreparedStatementExecuteQueryInterceptor.before(PreparedStatementExecuteQueryInterceptor.java:64)
+// at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java)
+// at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
+// at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
+// at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
+// at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
+// at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
+// at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
+// at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812)
@Override
public void recordSqlParsingResult(ParsingResult parsingResult) {
- recordAttribute(AnnotationKey.SQL_ID, parsingResult.getSql().hashCode());
+ if (parsingResult == null) {
+ // TODO 먼가 여기서 NullPointException이 발생한 Exception 기록이 잇음.
+
+ logger.warn("ParsingResult is null");
+ return;
+ }
+ String sql = parsingResult.getSql();
+ recordAttribute(AnnotationKey.SQL_ID, sql.hashCode());
String output = parsingResult.getOutput();
if (output != null && output.length() != 0) {
recordAttribute(AnnotationKey.SQL_PARAM, output);
diff --git a/src/main/java/com/profiler/context/SpanEvent.java b/src/main/java/com/profiler/context/SpanEvent.java
index f4cde1b5a..72b500673 100644
--- a/src/main/java/com/profiler/context/SpanEvent.java
+++ b/src/main/java/com/profiler/context/SpanEvent.java
@@ -28,7 +28,7 @@ public class SpanEvent implements Thriftable {
private String destionationId;
private List destinationAddress;
- private final List traceAnnotationList = new ArrayList(5);
+ private final List traceAnnotationList = new ArrayList(4);
private int nextSpanId = -1;
private int depth = -1;
diff --git a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java
index 51c097622..2a6b15b08 100644
--- a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java
+++ b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java
@@ -15,6 +15,9 @@ public class JavaAssistClass implements InstrumentClass {
private JavaAssistByteCodeInstrumentor instrumentor;
private CtClass ctClass;
+ private static final int STATIC_INTERCEPTOR = 0;
+ private static final int SIMPLE_INTERCEPTOR = 1;
+
public JavaAssistClass(JavaAssistByteCodeInstrumentor instrumentor, CtClass ctClass) {
this.instrumentor = instrumentor;
@@ -190,6 +193,12 @@ public class JavaAssistClass implements InstrumentClass {
addStaticBeforeInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
} else if (interceptor instanceof StaticAfterInterceptor) {
addStaticAfterInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
+ } else if(interceptor instanceof SimpleAroundInterceptor) {
+ addSimpleAroundInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
+ } else if(interceptor instanceof SimpleBeforeInterceptor) {
+ addSimpleBeforeInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
+ } else if(interceptor instanceof SimpleAfterInterceptor) {
+ addSimpleAfterInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
} else {
throw new IllegalArgumentException("unsupported");
}
@@ -249,32 +258,73 @@ public class JavaAssistClass implements InstrumentClass {
addStaticAfterInterceptor(methodName, id, method, useContextClassLoader);
}
- private void addStaticAfterInterceptor(String methodName, int id, CtBehavior behavior, boolean useContextClassLoader) throws NotFoundException, CannotCompileException {
+ private void addStaticBeforeInterceptor(String methodName, int id, CtBehavior behavior, boolean useContextClassLoader) throws CannotCompileException, NotFoundException {
+ addBeforeInterceptor(methodName, id, behavior, useContextClassLoader, STATIC_INTERCEPTOR);
+ }
- String target = getTarget(behavior);
+ private void addStaticAfterInterceptor(String methodName, int interceptorId, CtBehavior behavior, boolean useContextClassLoader) throws NotFoundException, CannotCompileException {
+ addAfterInterceptor(methodName, interceptorId, behavior, useContextClassLoader, STATIC_INTERCEPTOR);
+ }
+
+ private void addSimpleAroundInterceptor(String methodName, int interceptorId, CtBehavior behavior, boolean useContextClassLoader) throws NotFoundException, CannotCompileException {
+ addSimpleBeforeInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
+ addSimpleAfterInterceptor(methodName, interceptorId, behavior, useContextClassLoader);
+ }
+
+ private void addSimpleBeforeInterceptor(String methodName, int interceptorId, CtBehavior behavior, boolean useContextClassLoader) throws NotFoundException, CannotCompileException {
+ addBeforeInterceptor(methodName, interceptorId, behavior, useContextClassLoader, SIMPLE_INTERCEPTOR);
+ }
+
+ private void addSimpleAfterInterceptor(String methodName, int interceptorId, CtBehavior behavior, boolean useContextClassLoader) throws NotFoundException, CannotCompileException {
+ addAfterInterceptor(methodName, interceptorId, behavior, useContextClassLoader, SIMPLE_INTERCEPTOR);
+ }
+
+
+
+
+ private void addAfterInterceptor(String methodName, int id, CtBehavior behavior, boolean useContextClassLoader, int interceptorType) throws NotFoundException, CannotCompileException {
String returnType = getReturnType(behavior);
- String parameterTypeString = JavaAssistUtils.getParameterDescription(behavior.getParameterTypes());
+ String target = getTarget(behavior);
+
+ String parameterTypeString = null;
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ parameterTypeString = JavaAssistUtils.getParameterDescription(behavior.getParameterTypes());
+ }
String parameter = getParameter(behavior);
CodeBuilder after = new CodeBuilder();
if (useContextClassLoader) {
after.begin();
beginAddFindInterceptorCode(id, after);
- after.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class, java.lang.Object.class};");
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ after.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class, java.lang.Object.class};");
+ } else {
+ after.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.Object[].class, java.lang.Object.class};");
+ }
after.format(" java.lang.reflect.Method method = interceptor.getClass().getMethod(\"%1$s\", methodArgsClassParams);", "after");
- after.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, %6$s };", target, ctClass.getName(), methodName, parameterTypeString, parameter, returnType);
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ after.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, %6$s };", target, ctClass.getName(), methodName, parameterTypeString, parameter, returnType);
+ } else {
+ after.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, %2$s, %3$s };", target, parameter, returnType);
+ }
after.format(" method.invoke(interceptor, methodParams);");
endAddFindInterceptorCode(after);
after.end();
} else {
after.begin();
- after.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticAfterInterceptor.class.getName(), id);
- after.format(" interceptor.after(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, %6$s);", target, ctClass.getName(), methodName, parameterTypeString, parameter, returnType);
+
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ after.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticAfterInterceptor.class.getName(), id);
+ after.format(" interceptor.after(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, %6$s);", target, ctClass.getName(), methodName, parameterTypeString, parameter, returnType);
+ } else {
+ after.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", SimpleAfterInterceptor.class.getName(), id);
+ after.format(" interceptor.after(%1$s, %2$s, %3$s);", target, parameter, returnType);
+ }
after.end();
}
String buildAfter = after.toString();
- if (logger.isInfoEnabled()) {
- logger.info("addStaticAfterInterceptor after behavior:" + behavior.getLongName() + " code:" + buildAfter);
+ if (logger.isDebugEnabled()) {
+ logger.debug("addStaticAfterInterceptor after behavior:{} code:{}", behavior.getLongName(), buildAfter);
}
behavior.insertAfter(buildAfter);
@@ -283,23 +333,36 @@ public class JavaAssistClass implements InstrumentClass {
if (useContextClassLoader) {
catchCode.begin();
beginAddFindInterceptorCode(id, catchCode);
- catchCode.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class, java.lang.Object.class};");
+ if(interceptorType == STATIC_INTERCEPTOR) {
+ catchCode.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class, java.lang.Object.class};");
+ } else {
+ catchCode.format(" java.lang.Class[] methodArgsClassParams = new Class[]{java.lang.Object.class, java.lang.Object[].class, java.lang.Object.class};");
+ }
catchCode.format(" java.lang.reflect.Method method = interceptor.getClass().getMethod(\"%1$s\", methodArgsClassParams);", "after");
- catchCode.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, (java.lang.Object) $e };", target, ctClass.getName(), methodName, parameterTypeString, parameter);
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ catchCode.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, (java.lang.Object) $e };", target, ctClass.getName(), methodName, parameterTypeString, parameter);
+ } else {
+ catchCode.format(" java.lang.Object[] methodParams = new java.lang.Object[] { %1$s, %2$s, (java.lang.Object) $e };", target, parameter);
+ }
catchCode.format(" method.invoke(interceptor, methodParams);");
endAddFindInterceptorCode(catchCode);
catchCode.format(" throw $e;");
catchCode.end();
} else {
catchCode.begin();
- catchCode.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticAfterInterceptor.class.getName(), id);
- catchCode.format(" interceptor.after(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, $e);", target, ctClass.getName(), methodName, parameterTypeString, parameter);
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ catchCode.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticAfterInterceptor.class.getName(), id);
+ catchCode.format(" interceptor.after(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s, $e);", target, ctClass.getName(), methodName, parameterTypeString, parameter);
+ } else {
+ catchCode.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", SimpleAfterInterceptor.class.getName(), id);
+ catchCode.format(" interceptor.after(%1$s, %2$s, $e);", target, parameter);
+ }
catchCode.append(" throw $e;");
catchCode.end();
}
String buildCatch = catchCode.toString();
- if (logger.isInfoEnabled()) {
- logger.info("addStaticAfterInterceptor catch behavior:" + behavior.getLongName() + " code:" + buildCatch);
+ if (logger.isDebugEnabled()) {
+ logger.debug("addStaticAfterInterceptor catch behavior:{} code:{}", behavior.getLongName(), buildCatch);
}
CtClass th = instrumentor.getClassPool().get("java.lang.Throwable");
behavior.addCatch(buildCatch, th);
@@ -339,10 +402,13 @@ public class JavaAssistClass implements InstrumentClass {
}
- private void addStaticBeforeInterceptor(String methodName, int id, CtBehavior behavior, boolean useContextClassLoader) throws CannotCompileException, NotFoundException {
+ private void addBeforeInterceptor(String methodName, int id, CtBehavior behavior, boolean useContextClassLoader, int interceptorType) throws CannotCompileException, NotFoundException {
String target = getTarget(behavior);
// 인터셉터 호출시 최대한 연산량을 줄이기 위해서 정보는 가능한 정적 데이터로 생성한다.
- String parameterDescription = JavaAssistUtils.getParameterDescription(behavior.getParameterTypes());
+ String parameterDescription = null;
+ if(interceptorType == STATIC_INTERCEPTOR) {
+ parameterDescription = JavaAssistUtils.getParameterDescription(behavior.getParameterTypes());
+ }
String parameter = getParameter(behavior);
CodeBuilder code = new CodeBuilder();
@@ -356,21 +422,34 @@ public class JavaAssistClass implements InstrumentClass {
// beforeMethod.invoke(interceptor, null, null, null, null, null);
//
beginAddFindInterceptorCode(id, code);
- code.format(" java.lang.Class[] beforeMethodParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class};");
+ if(interceptorType == STATIC_INTERCEPTOR) {
+ code.format(" java.lang.Class[] beforeMethodParams = new Class[]{java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object[].class};");
+ } else {
+ code.format(" java.lang.Class[] beforeMethodParams = new Class[]{java.lang.Object.class, java.lang.Object[].class};");
+ }
code.format(" java.lang.reflect.Method beforeMethod = interceptor.getClass().getMethod(\"%1$s\", beforeMethodParams);", "before");
- code.format(" java.lang.Object[] beforeParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s };", target, ctClass.getName(), methodName, parameterDescription, parameter);
+ if(interceptorType == STATIC_INTERCEPTOR) {
+ code.format(" java.lang.Object[] beforeParams = new java.lang.Object[] { %1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s };", target, ctClass.getName(), methodName, parameterDescription, parameter);
+ } else {
+ code.format(" java.lang.Object[] beforeParams = new java.lang.Object[] { %1$s, %2$s };", target, parameter);
+ }
code.format(" beforeMethod.invoke(interceptor, beforeParams);");
code.format("}");
code.end();
} else {
code.begin();
- code.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticBeforeInterceptor.class.getName(), id);
- code.format(" interceptor.before(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s);", target, ctClass.getName(), methodName, parameterDescription, parameter);
+ if (interceptorType == STATIC_INTERCEPTOR) {
+ code.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", StaticBeforeInterceptor.class.getName(), id);
+ code.format(" interceptor.before(%1$s, \"%2$s\", \"%3$s\", \"%4$s\", %5$s);", target, ctClass.getName(), methodName, parameterDescription, parameter);
+ } else {
+ code.format(" %1$s interceptor = (%1$s) com.profiler.interceptor.InterceptorRegistry.getInterceptor(%2$d);", SimpleBeforeInterceptor.class.getName(), id);
+ code.format(" interceptor.before(%1$s, %2$s);", target, parameter);
+ }
code.end();
}
String buildBefore = code.toString();
if (logger.isInfoEnabled()) {
- logger.info("addStaticBeforeInterceptor catch behavior:" + behavior.getLongName() + " code:" + buildBefore);
+ logger.info("addStaticBeforeInterceptor catch behavior:{} code:{}", behavior.getLongName(), buildBefore);
}
if (behavior instanceof CtConstructor) {
diff --git a/src/main/java/com/profiler/logging/Slf4jLoggerAdapter.java b/src/main/java/com/profiler/logging/Slf4jLoggerAdapter.java
index e2ce95ce6..325eccd4e 100644
--- a/src/main/java/com/profiler/logging/Slf4jLoggerAdapter.java
+++ b/src/main/java/com/profiler/logging/Slf4jLoggerAdapter.java
@@ -28,6 +28,14 @@ public class Slf4jLoggerAdapter implements Logger {
logger.debug(sb.toString());
}
+ @Override
+ public void beforeInterceptor(Object target, Object[] args) {
+ StringBuilder sb = new StringBuilder(BUFFER_SIZE);
+ sb.append("before ");
+ logMethod(sb, target, args);
+ logger.debug(sb.toString());
+ }
+
@Override
public void afterInterceptor(Object target, String className, String methodName, String parameterDescription, Object[] args, Object result) {
StringBuilder sb = new StringBuilder(BUFFER_SIZE);
@@ -38,6 +46,16 @@ public class Slf4jLoggerAdapter implements Logger {
logger.debug(sb.toString());
}
+ @Override
+ public void afterInterceptor(Object target, Object[] args, Object result) {
+ StringBuilder sb = new StringBuilder(BUFFER_SIZE);
+ sb.append("after ");
+ logMethod(sb, target, args);
+ sb.append(" result:");
+ sb.append(result);
+ logger.debug(sb.toString());
+ }
+
@Override
public void afterInterceptor(Object target, String className, String methodName, String parameterDescription, Object[] args) {
StringBuilder sb = new StringBuilder(BUFFER_SIZE);
@@ -46,6 +64,14 @@ public class Slf4jLoggerAdapter implements Logger {
logger.debug(sb.toString());
}
+ @Override
+ public void afterInterceptor(Object target, Object[] args) {
+ StringBuilder sb = new StringBuilder(BUFFER_SIZE);
+ sb.append("after ");
+ logMethod(sb, target, args);
+ logger.debug(sb.toString());
+ }
+
private static void logMethod(StringBuilder sb, Object target, String className, String methodName, String parameterDescription, Object[] args) {
sb.append(target);
sb.append(' ');
@@ -57,6 +83,13 @@ public class Slf4jLoggerAdapter implements Logger {
appendArray(sb, args);
}
+ private static void logMethod(StringBuilder sb, Object target, Object[] args) {
+ sb.append(target);
+ sb.append(' ');
+ sb.append(" args:");
+ appendArray(sb, args);
+ }
+
private static void appendArray(StringBuilder sb, Object[] args) {
if (args == null) {
sb.append("null");
diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/AddOpInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/AddOpInterceptor.java
index 3c51f5071..df974ad9f 100644
--- a/src/main/java/com/profiler/modifier/arcus/interceptors/AddOpInterceptor.java
+++ b/src/main/java/com/profiler/modifier/arcus/interceptors/AddOpInterceptor.java
@@ -1,5 +1,6 @@
package com.profiler.modifier.arcus.interceptors;
+import com.profiler.interceptor.SimpleBeforeInterceptor;
import com.profiler.logging.Logger;
import com.profiler.logging.LoggerFactory;
@@ -15,7 +16,7 @@ import com.profiler.util.MetaObject;
* @author netspider
*
*/
-public class AddOpInterceptor implements StaticBeforeInterceptor {
+public class AddOpInterceptor implements SimpleBeforeInterceptor {
private final Logger logger = LoggerFactory.getLogger(AddOpInterceptor.class.getName());
private final boolean isDebug = logger.isDebugEnabled();
@@ -26,9 +27,9 @@ public class AddOpInterceptor implements StaticBeforeInterceptor {
private final String MEMCACHED = "MEMCACHED";
@Override
- public void before(Object target, String className, String methodName, String parameterDescription, Object[] args) {
+ public void before(Object target, Object[] args) {
if (isDebug) {
- logger.beforeInterceptor(target, className, methodName, parameterDescription, args);
+ logger.beforeInterceptor(target, args);
}
String serviceCode = getServiceCode.invoke((MemcachedClient) target);
diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationCancelInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationCancelInterceptor.java
index 3f44a5265..bb7caab86 100644
--- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationCancelInterceptor.java
+++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationCancelInterceptor.java
@@ -1,6 +1,7 @@
package com.profiler.modifier.arcus.interceptors;
import com.profiler.context.AsyncTrace;
+import com.profiler.interceptor.SimpleBeforeInterceptor;
import com.profiler.logging.Logger;
import com.profiler.context.DefaultAsyncTrace;
@@ -15,7 +16,7 @@ import com.profiler.util.MetaObject;
/**
*
*/
-public class BaseOperationCancelInterceptor implements StaticBeforeInterceptor {
+public class BaseOperationCancelInterceptor implements SimpleBeforeInterceptor {
private final Logger logger = LoggerFactory.getLogger(BaseOperationCancelInterceptor.class.getName());
private final boolean isDebug = logger.isDebugEnabled();
@@ -23,9 +24,9 @@ public class BaseOperationCancelInterceptor implements StaticBeforeInterceptor {
private MetaObject getAsyncTrace = new MetaObject("__getAsyncTrace");
@Override
- public void before(Object target, String className, String methodName, String parameterDescription, Object[] args) {
+ public void before(Object target, Object[] args) {
if (isDebug) {
- logger.beforeInterceptor(target, className, methodName, parameterDescription, args);
+ logger.beforeInterceptor(target, args);
}
AsyncTrace asyncTrace = (AsyncTrace) getAsyncTrace.invoke(target);
diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java
index 2f0b301af..e52306d32 100644
--- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java
+++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationConstructInterceptor.java
@@ -1,5 +1,6 @@
package com.profiler.modifier.arcus.interceptors;
+import com.profiler.interceptor.SimpleAfterInterceptor;
import com.profiler.logging.Logger;
import com.profiler.context.AsyncTrace;
@@ -15,7 +16,7 @@ import com.profiler.util.TimeObject;
/**
*
*/
-public class BaseOperationConstructInterceptor implements StaticAfterInterceptor, TraceContextSupport {
+public class BaseOperationConstructInterceptor implements SimpleAfterInterceptor, TraceContextSupport {
private final Logger logger = LoggerFactory.getLogger(BaseOperationConstructInterceptor.class.getName());
private final boolean isDebug = logger.isDebugEnabled();
@@ -24,9 +25,9 @@ public class BaseOperationConstructInterceptor implements StaticAfterInterceptor
private TraceContext traceContext;
@Override
- public void after(Object target, String className, String methodName, String parameterDescription, Object[] args, Object result) {
+ public void after(Object target, Object[] args, Object result) {
if (isDebug) {
- logger.afterInterceptor(target, className, methodName, parameterDescription, args, result);
+ logger.afterInterceptor(target, args, result);
}
Trace trace = traceContext.currentTraceObject();
diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java
index ee6f7fea7..d0238b3a7 100644
--- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java
+++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java
@@ -5,14 +5,12 @@ import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
+import com.profiler.interceptor.*;
import com.profiler.logging.Logger;
import com.profiler.common.AnnotationKey;
import com.profiler.context.AsyncTrace;
import com.profiler.context.TraceContext;
-import com.profiler.interceptor.ByteCodeMethodDescriptorSupport;
-import com.profiler.interceptor.MethodDescriptor;
-import com.profiler.interceptor.TraceContextSupport;
import com.profiler.logging.LoggerFactory;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.TimeObject;
@@ -21,13 +19,12 @@ import net.spy.memcached.ops.OperationState;
import net.spy.memcached.protocol.BaseOperationImpl;
import com.profiler.common.ServiceType;
-import com.profiler.interceptor.StaticBeforeInterceptor;
import com.profiler.util.MetaObject;
/**
*
*/
-public class BaseOperationTransitionStateInterceptor implements StaticBeforeInterceptor, ByteCodeMethodDescriptorSupport, TraceContextSupport {
+public class BaseOperationTransitionStateInterceptor implements SimpleBeforeInterceptor, ByteCodeMethodDescriptorSupport, TraceContextSupport {
private final Logger logger = LoggerFactory.getLogger(BaseOperationTransitionStateInterceptor.class.getName());
private final boolean isDebug = logger.isDebugEnabled();
@@ -41,9 +38,9 @@ public class BaseOperationTransitionStateInterceptor implements StaticBeforeInte
private TraceContext traceContext;
@Override
- public void before(Object target, String className, String methodName, String parameterDescription, Object[] args) {
+ public void before(Object target, Object[] args) {
if (isDebug) {
- logger.beforeInterceptor(target, className, methodName, parameterDescription, args);
+ logger.beforeInterceptor(target, args);
}
AsyncTrace asyncTrace = (AsyncTrace) getAsyncTrace.invoke(target);
diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/CacheManagerConstructInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/CacheManagerConstructInterceptor.java
index 1b6ea6c66..fb107c954 100644
--- a/src/main/java/com/profiler/modifier/arcus/interceptors/CacheManagerConstructInterceptor.java
+++ b/src/main/java/com/profiler/modifier/arcus/interceptors/CacheManagerConstructInterceptor.java
@@ -1,5 +1,6 @@
package com.profiler.modifier.arcus.interceptors;
+import com.profiler.interceptor.SimpleAfterInterceptor;
import com.profiler.logging.Logger;
import com.profiler.interceptor.StaticAfterInterceptor;
@@ -12,7 +13,7 @@ import com.profiler.util.MetaObject;
* @author netspider
*
*/
-public class CacheManagerConstructInterceptor implements StaticAfterInterceptor {
+public class CacheManagerConstructInterceptor implements SimpleAfterInterceptor {
private final Logger logger = LoggerFactory.getLogger(CacheManagerConstructInterceptor.class.getName());
private final boolean isDebug = logger.isDebugEnabled();
@@ -20,9 +21,9 @@ public class CacheManagerConstructInterceptor implements StaticAfterInterceptor
private MetaObject