This is an automated email from the ASF dual-hosted git repository.

Aias00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 74d338961d fix: prevent NullPointerException in InstanceCheckService 
by null-checking executor during close (#6934)
74d338961d is described below

commit 74d338961dcbfdb27963c339b8d14e0750cc1dd9
Author: Limbo <[email protected]>
AuthorDate: Thu Aug 20 18:57:22 2026 +0800

    fix: prevent NullPointerException in InstanceCheckService by null-checking 
executor during close (#6934)
---
 .../org/apache/shenyu/admin/service/impl/InstanceCheckService.java  | 5 ++++-
 .../apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java  | 6 ++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/InstanceCheckService.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/InstanceCheckService.java
index de6835b14d..0e06761f68 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/InstanceCheckService.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/InstanceCheckService.java
@@ -39,6 +39,7 @@ import java.util.Arrays;
 import java.util.Deque;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedDeque;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -179,7 +180,9 @@ public class InstanceCheckService {
     public void close() {
         syncDB();
         instanceHealthBeatInfo.clear();
-        executor.shutdown();
+        if (Objects.nonNull(executor)) {
+            executor.shutdown();
+        }
     }
 
     /**
diff --git 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java
 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java
index 467555a321..e8e5740eba 100644
--- 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java
+++ 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java
@@ -39,6 +39,7 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
@@ -118,6 +119,11 @@ public final class InstanceCheckServiceTest {
         verify(instanceInfoService, 
times(1)).createOrUpdate(any(InstanceInfoVO.class));
     }
 
+    @Test
+    void testCloseWithoutSetup() {
+        assertDoesNotThrow(instanceCheckService::close);
+    }
+
     @Test
     void testOnInstanceInfoReport() {
         InstanceInfoReportEvent event = InstanceInfoReportEvent.builder()

Reply via email to