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

dmsolr pushed a commit to branch fix/instance-info-resultmap-6873
in repository https://gitbox.apache.org/repos/asf/shenyu.git

commit 44711f926ad7e6305d5efca60bf28291d357d6c3
Author: Luke Haochao Zhuang <[email protected]>
AuthorDate: Mon Aug 31 16:11:13 2026 +0800

    fix: add missing instance_state mapping to instance_info BaseResultMap 
(#6873)
    
    BaseResultMap in instance-info-sqlmap.xml mapped 
id/date_created/date_updated/instance_ip/instance_port/instance_type/instance_info/namespace_id
 but not instance_state, even though Base_Column_List includes it and 
insert/updateById write it. Every resultMap-based SELECT (selectAll, 
findAllByNamespaceId, selectByQuery) returned instanceState = null for rows 
with a non-null state, which is the upstream root cause of InstanceCheckService 
null-state autoboxing NPEs. Also removed the dupli [...]
---
 shenyu-admin/src/main/resources/mappers/instance-info-sqlmap.xml     | 5 ++---
 .../java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java  | 4 ++++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/shenyu-admin/src/main/resources/mappers/instance-info-sqlmap.xml 
b/shenyu-admin/src/main/resources/mappers/instance-info-sqlmap.xml
index d2a112b9ef..e59669143d 100644
--- a/shenyu-admin/src/main/resources/mappers/instance-info-sqlmap.xml
+++ b/shenyu-admin/src/main/resources/mappers/instance-info-sqlmap.xml
@@ -26,6 +26,7 @@
         <result column="instance_port" jdbcType="VARCHAR" 
property="instancePort"/>
         <result column="instance_type" jdbcType="VARCHAR" 
property="instanceType"/>
         <result column="instance_info" jdbcType="VARCHAR" 
property="instanceInfo"/>
+        <result column="instance_state" jdbcType="INTEGER" 
property="instanceState"/>
         <result column="namespace_id" jdbcType="VARCHAR" 
property="namespaceId"/>
     </resultMap>
 
@@ -38,9 +39,7 @@
         instance_type,
         instance_info,
         instance_state,
-        namespace_id,
-        date_created,
-        date_updated
+        namespace_id
     </sql>
     
     <update id="updateById">
diff --git 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java
 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java
index 4f5ce1112b..74801a12d2 100644
--- 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java
+++ 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java
@@ -36,6 +36,7 @@ import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Test cases for InstanceInfoMapper.
@@ -71,12 +72,14 @@ public final class InstanceInfoMapperTest extends 
AbstractSpringIntegrationTest
     void selectAll() {
         List<InstanceInfoDO> list = instanceInfoMapper.selectAll();
         assertThat(list.size(), greaterThanOrEqualTo(1));
+        assertTrue(list.stream().anyMatch(item -> 
instance.getId().equals(item.getId()) && 
instance.getInstanceState().equals(item.getInstanceState())));
     }
 
     @Test
     void findAllByNamespaceId() {
         List<InstanceInfoDO> list = 
instanceInfoMapper.findAllByNamespaceId(instance.getNamespaceId());
         assertThat(list.size(), greaterThanOrEqualTo(1));
+        assertTrue(list.stream().anyMatch(item -> 
instance.getId().equals(item.getId()) && 
instance.getInstanceState().equals(item.getInstanceState())));
     }
 
     @Test
@@ -108,6 +111,7 @@ public final class InstanceInfoMapperTest extends 
AbstractSpringIntegrationTest
         query.setInstancePort(instance.getInstancePort());
         List<InstanceInfoDO> list = instanceInfoMapper.selectByQuery(query);
         assertThat(list.size(), greaterThanOrEqualTo(1));
+        assertTrue(list.stream().anyMatch(item -> 
instance.getId().equals(item.getId()) && 
instance.getInstanceState().equals(item.getInstanceState())));
     }
 
     @Test

Reply via email to