From 52930d2458a4df8e6542beb01b23c52776c063f6 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Mon, 14 Sep 2020 16:52:28 -0400 Subject: [PATCH] Don't refresh routes on management context events. Previously, the RouteRefreshListener reset the routes cache on all ContextRefreshedEvents. If actuator is run on a seperate port, to ContextRefreshedEvents are published. This adds a check to only reset the cache if the event does not come from the management context. Fixes gh-1928 --- .../gateway/route/RouteRefreshListener.java | 11 +++++-- .../route/RouteRefreshListenerTests.java | 29 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteRefreshListener.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteRefreshListener.java index 4625ad41..5841a53c 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteRefreshListener.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteRefreshListener.java @@ -16,6 +16,7 @@ package org.springframework.cloud.gateway.route; +import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.cloud.client.discovery.event.HeartbeatEvent; import org.springframework.cloud.client.discovery.event.HeartbeatMonitor; import org.springframework.cloud.client.discovery.event.InstanceRegisteredEvent; @@ -43,8 +44,14 @@ public class RouteRefreshListener implements ApplicationListener