Due to lacking support in NullAway for the current arrangement, we are (perhaps temporarily) changing the signature of the execute() method in RetryOperations (and thus also in RetryTemplate)... from: <R extends @Nullable Object> R execute(Retryable<R> retryable); to: <R> @Nullable R execute(Retryable<? extends @Nullable R> retryable); Once https://github.com/uber/NullAway/issues/1075 has been resolved, we will consider switching back to the original signature. See gh-34716