HealthCheckedEndpointGroup should probably wait for connectTimeout before throwing exception.
See original GitHub issueCurrently, HttpHealthCheckedEndpointGroup
will throw an EndpointGroupException
immediately when a request is attempted when there are no endpoints. It would be more intuitive and simpler to use if it was possible for the request to wait until ClientFactory.connectTImeout()
before throwing the exception, allowing a health checked endpoint group to have similar connection behavior as just a single endpoint.
Issue Analytics
- State:
- Created 4 years ago
- Comments:18 (2 by maintainers)
Top Results From Across the Web
Retrofit 2: Catch connection timeout exception - Stack Overflow
I personnaly tried increasing connection timeout but, evetually, it doesn't really solve the problem at its root. Besides, user is not supposed to...
Read more >Exception handling issue - Help - UiPath Community Forum
When exception which is thrown by activity handled by catch block ,it ... will probably be waiting for its timeout period to expire...
Read more >How to Throw Exceptions (The Java™ Tutorials > Essential ...
This Java tutorial describes exceptions, basic input/output, concurrency, regular expressions, and the platform environment.
Read more >Coroutine exceptions handling | Kotlin
This section covers exception handling and cancellation on exceptions. We already know that a cancelled coroutine throws CancellationException ...
Read more >Exception handling (Task Parallel Library) - Microsoft Learn
If a task is the parent of attached child tasks, or if you are waiting on multiple tasks, multiple exceptions could be thrown....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
There are two things to fix for this issue:
Endpoint
from anEndpointGroup
, we need to wait up to certain amount of time (connect timeout) before raising anEmptyEndpointGroupException
.EndpointGroup.select()
that requires a timeout value and returns aCompletableFuture<Endpoint>
. The new method could be used when a) initializing a new context and b)RetryingClient
chooses a new endpoint.EmptyEndpointGroupException
, a request will always fail with a response whose failure cause is aUnprocessedRequestException
, regardless of whetherRetryingClient
is present in a decorator chain or not. This behavior needs to change so that the successful re-attempts made byRetryingClient
are passed to the caller.Not sure this will be as easy as I described above (devils are always in details 😱). Any better ideas or traps I didn’t realize yet?
I’d like to target this issue for 1.0 again given its impact.