docs: @Override
  	public Object invoke(MethodInvocation invocation) throws Throwable {
  
  		Object result;
  
  		if (!isRetryContextOperationActive()) {
  			assertNoTransactionActive();
  			if (LOGGER.isTraceEnabled()) {
  				LOGGER.trace("Starting a new Retry Interceptor for {}",
  						(invocation != null ? invocation.getMethod() : null));
  			}
  			result = super.invoke(invocation);
  			if (LOGGER.isTraceEnabled()) {
  				LOGGER.trace("Finished a new Retry Interceptor for {}",
  						(invocation != null ? invocation.getMethod() : null));
  			}
  		}
  		else {
  			if (LOGGER.isTraceEnabled()) {
  				LOGGER.trace("Participating in existing retry operation");
  			}
  			result = invocation.proceed();
  		}
  
  		return result;
  	}