From 9bf9c44f3b06ab95257c6ee6b48cd852e8b11025 Mon Sep 17 00:00:00 2001 From: attermann Date: Sun, 12 Feb 2023 09:33:14 -0700 Subject: [PATCH] Added status code 404 to ReregistrationPredicate Consul agent as of approximately v1.11.2 returns status code 404 on agent health check instead of status code 500. This change resulted in re-registration not taking place when expected. Adding status code 404 to the ReregistrationPredicate enables re-registration with both older and newer versions of Consul agent. Fixes gh-808 --- .../cloud/consul/discovery/ReregistrationPredicate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ReregistrationPredicate.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ReregistrationPredicate.java index 141eaf33..cd40131c 100644 --- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ReregistrationPredicate.java +++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ReregistrationPredicate.java @@ -33,8 +33,8 @@ public interface ReregistrationPredicate { boolean isEligible(OperationException e); /** - * Default implementation that performs re-registration when the status code is 500. + * Default implementation that performs re-registration when the status code is either 404 or 500. */ - ReregistrationPredicate DEFAULT = e -> e.getStatusCode() == 500; + ReregistrationPredicate DEFAULT = e -> (e.getStatusCode() == 404 || e.getStatusCode() == 500); }