code: public Object processInvocation(final InterceptorContext context) throws Exception {
          try {
              Method method = this.method;
              if (withContext) {
                  if (changeMethod) {
                      final Method oldMethod = context.getMethod();
                      context.setMethod(method);
                      try {
                          return method.invoke(interceptorInstance, context.getInvocationContext());
                      } finally {
                          context.setMethod(oldMethod);
                      }
                  } else {
                      return method.invoke(interceptorInstance, context.getInvocationContext());
                  }
              } else {
                  method.invoke(interceptorInstance, null);
                  return context.proceed();
              }
          } catch (IllegalAccessException e) {
              final IllegalAccessError n = new IllegalAccessError(e.getMessage());
              n.setStackTrace(e.getStackTrace());
              throw n;
          } catch (InvocationTargetException e) {
              throw Interceptors.rethrow(e.getCause());
          }
      }
docs: {@inheritDoc}