This is an automated email from the ASF dual-hosted git repository.
dengliming 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 431ccc4834 fix: only update metadata enable status within the same
namespace (#6615) (#7047)
431ccc4834 is described below
commit 431ccc48343e882299981f95e3e6e4c2f72e2ac2
Author: wy471x <[email protected]>
AuthorDate: Thu Sep 17 11:41:20 2026 +0800
fix: only update metadata enable status within the same namespace (#6615)
(#7047)
Co-authored-by: Liming Deng <[email protected]>
---
.../shenyu/admin/service/impl/MetaDataServiceImpl.java | 2 +-
.../apache/shenyu/admin/service/MetaDataServiceTest.java | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/MetaDataServiceImpl.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/MetaDataServiceImpl.java
index ae52536cb1..d8dce3f59f 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/MetaDataServiceImpl.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/MetaDataServiceImpl.java
@@ -129,7 +129,7 @@ public class MetaDataServiceImpl implements MetaDataService
{
for (MetaDataDO metaDataDO : metaDataDoList) {
metaDataDO.setEnabled(enabled);
}
- if (metaDataMapper.updateEnableBatch(ids, enabled) > 0) {
+ if (metaDataMapper.updateEnableBatch(ListUtil.map(metaDataDoList,
MetaDataDO::getId), enabled) > 0) {
publisher.onEnabled(metaDataDoList);
}
return StringUtils.EMPTY;
diff --git
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/MetaDataServiceTest.java
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/MetaDataServiceTest.java
index 0860090dff..1378c15c94 100644
---
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/MetaDataServiceTest.java
+++
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/MetaDataServiceTest.java
@@ -153,6 +153,22 @@ public final class MetaDataServiceTest {
assertEquals(StringUtils.EMPTY, msg);
}
+ /**
+ * Test case for enabled only updates metadata that belongs to the current
namespace.
+ */
+ @Test
+ public void testEnabledOnlyUpdatesIdsWithinNamespace() {
+ List<String> ids = Lists.newArrayList("id-in-current-namespace",
"id-in-other-namespace");
+ MetaDataDO inNamespace =
MetaDataDO.builder().id("id-in-current-namespace").namespaceId(SYS_DEFAULT_NAMESPACE_ID).build();
+ when(metaDataMapper.selectByIdListAndNamespaceId(ids,
SYS_DEFAULT_NAMESPACE_ID))
+ .thenReturn(Collections.singletonList(inNamespace));
+
when(metaDataMapper.updateEnableBatch(Collections.singletonList("id-in-current-namespace"),
true)).thenReturn(1);
+ String msg = metaDataService.enabledByIdsAndNamespaceId(ids, true,
SYS_DEFAULT_NAMESPACE_ID);
+ assertEquals(StringUtils.EMPTY, msg);
+
verify(metaDataMapper).updateEnableBatch(Collections.singletonList("id-in-current-namespace"),
true);
+ verify(publisher).onEnabled(Collections.singletonList(inNamespace));
+ }
+
/**
* Test case for syncData.
*/