@Override
    public void after(Object target, Object[] args, Object result, Throwable throwable) {

        if (logger.isDebugEnabled()) {

            logger.afterInterceptor(target, args, result, throwable);
        }

        final Trace trace = traceContext.currentTraceObject();

        if (trace == null) {
            return;
        }

        try {
            SpanEventRecorder recorder = trace.currentSpanEventRecorder();
            recorder.recordServiceType(FastjsonConstants.SERVICE_TYPE);
            recorder.recordApi(descriptor);
            recorder.recordException(throwable);

            Object arg = ArrayUtils.get(args, 0);
            int length = contentLength.getLength(arg);
            if (length != ContentLength.NOT_EXIST) {
                recorder.recordAttribute(FastjsonConstants.ANNOTATION_KEY_JSON_LENGTH, length);
            }

        } finally {
            trace.traceBlockEnd();
        }

    }
Instantiates a new Parse object interceptor.

@param traceContext the trace context
@param descriptor   the descriptor
agent-module/plugins/fastjson/src/main/java/com/navercorp/pinpoint/plugin/fastjson/interceptor/ParseObjectInterceptor.java