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()