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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2f50a97a251 Refactor DatabaseRuleItemManager (#34849)
2f50a97a251 is described below

commit 2f50a97a25159168763c7a02d1d3190f29f102c7
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Mon Mar 3 19:14:38 2025 +0800

    Refactor DatabaseRuleItemManager (#34849)
---
 .../mode/metadata/manager/rule/DatabaseRuleItemManager.java   | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java
index 9a892ed238e..9de6e8991a4 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleItemManager.java
@@ -57,12 +57,13 @@ public final class DatabaseRuleItemManager {
      */
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void alter(final AlterRuleItem alterRuleItem) throws SQLException {
-        if 
(String.valueOf(alterRuleItem.getActiveVersion()).equals(metaDataPersistFacade.getRepository().query(alterRuleItem.getActiveVersionKey())))
 {
-            log.warn("Invalid active version: {} of key: {}", 
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
+        VersionNodePath versionNodePath = new 
VersionNodePath(getDatabaseRuleNodePath(alterRuleItem));
+        String activeVersionPath = versionNodePath.getActiveVersionPath();
+        if 
(!String.valueOf(alterRuleItem.getActiveVersion()).equals(metaDataPersistFacade.getRepository().query(activeVersionPath)))
 {
+            log.warn("Invalid active version: {} of key: {}", 
alterRuleItem.getActiveVersion(), activeVersionPath);
             return;
         }
         RuleItemConfigurationChangedProcessor processor = 
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, 
alterRuleItem.getType());
-        VersionNodePath versionNodePath = getVersionNodePath(alterRuleItem);
         String yamlContent = 
metaDataPersistFacade.getMetaDataVersionService().loadContent(versionNodePath);
         String databaseName = alterRuleItem.getDatabaseName();
         RuleConfiguration currentRuleConfig = 
processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName));
@@ -72,13 +73,13 @@ public final class DatabaseRuleItemManager {
         }
     }
     
-    private VersionNodePath getVersionNodePath(final AlterRuleItem 
alterRuleItem) {
+    private DatabaseRuleNodePath getDatabaseRuleNodePath(final AlterRuleItem 
alterRuleItem) {
         String ruleType = alterRuleItem.getType().getRuleType();
         String itemType = alterRuleItem.getType().getRuleItemType();
         DatabaseRuleItem databaseRuleItem = alterRuleItem instanceof 
AlterNamedRuleItem
                 ? new DatabaseRuleItem(itemType, ((AlterNamedRuleItem) 
alterRuleItem).getItemName())
                 : new DatabaseRuleItem(itemType);
-        return new VersionNodePath(new 
DatabaseRuleNodePath(alterRuleItem.getDatabaseName(), ruleType, 
databaseRuleItem));
+        return new DatabaseRuleNodePath(alterRuleItem.getDatabaseName(), 
ruleType, databaseRuleItem);
     }
     
     /**

Reply via email to