Allow retryable exceptions without a request - #3548
Conversation
Add no-request overloads for both cause and no-cause paths using the current millisecond retry-after type. OpenAI Codex assisted with implementation and validation; the final changes were reviewed and verified. Fixes OpenFeign#1296
|
Code review: this is a small, correctly-scoped addition — two new constructors on RetryableException matching what #1296 asked for (building a retryable exception without a Request), reusing the existing hasRequest()/request() accessors with no new nullability surface. No structural issues. The overload growth (12 constructors now, disambiguated by parameter type) is a pre-existing pattern in this file, not something this PR should be asked to fix on its own — worth a follow-up migrating the class to named static factories at some point, not blocking here. Only holding off on approving because ci/circleci: setup-environment is currently failing on this PR and I don't have visibility into why from here (the API isn't returning step-level logs). Once CI is green this looks mergeable to me — could you take a look at the failure or push an empty commit to retrigger if it looks like a flake? |
…eption-without-request
|
Thanks for flagging this. I traced the old setup failure to the repository's mvnd 1.0.2 download URL. Current The setup job and full PR build are now green on |
Summary
RetryableExceptionoverloads that do not require or retain aRequestLong retryAftervalueTesting
mvn -pl core -Pdev -Dtoolchain.skip=true -Dtest=RetryableExceptionTest test(5 passed)mvn -pl core -Pdev -Dtoolchain.skip=true verify(731 passed, 4 skipped)mvn clean install -pl core -Pdev -Dtoolchain.skip=true(731 passed, 4 skipped)master(JDK 25)git diff --checkAI assistance
OpenAI Codex assisted with code navigation, implementation, and validation. I reviewed and verified the final changes.
Fixes #1296