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 cda18a87242 Use log instead of exception when active version mismatch 
(#34848)
cda18a87242 is described below

commit cda18a87242ceba9d7a7437303b0d579cea8a44e
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Mon Mar 3 19:02:02 2025 +0800

    Use log instead of exception when active version mismatch (#34848)
---
 .../manager/rule/DatabaseRuleItemManager.java      | 24 ++++++++++++++--------
 1 file changed, 16 insertions(+), 8 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 4fd9ab8608a..9a892ed238e 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
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.metadata.manager.rule;
 
 import com.google.common.base.Preconditions;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.scope.DatabaseRuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.scope.DatabaseRuleConfigurationEmptyChecker;
@@ -39,6 +40,7 @@ import java.sql.SQLException;
  * Database rule item manager.
  */
 @RequiredArgsConstructor
+@Slf4j
 public final class DatabaseRuleItemManager {
     
     private final MetaDataContexts metaDataContexts;
@@ -55,15 +57,12 @@ public final class DatabaseRuleItemManager {
      */
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void alter(final AlterRuleItem alterRuleItem) throws SQLException {
-        
Preconditions.checkArgument(String.valueOf(alterRuleItem.getActiveVersion()).equals(metaDataPersistFacade.getRepository().query(alterRuleItem.getActiveVersionKey())),
-                "Invalid active version: %s of key: %s", 
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
+        if 
(String.valueOf(alterRuleItem.getActiveVersion()).equals(metaDataPersistFacade.getRepository().query(alterRuleItem.getActiveVersionKey())))
 {
+            log.warn("Invalid active version: {} of key: {}", 
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
+            return;
+        }
         RuleItemConfigurationChangedProcessor processor = 
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, 
alterRuleItem.getType());
-        String ruleType = alterRuleItem.getType().getRuleType();
-        String itemType = alterRuleItem.getType().getRuleItemType();
-        DatabaseRuleItem databaseRuleItem = alterRuleItem instanceof 
AlterNamedRuleItem
-                ? new DatabaseRuleItem(itemType, ((AlterNamedRuleItem) 
alterRuleItem).getItemName())
-                : new DatabaseRuleItem(itemType);
-        VersionNodePath versionNodePath = new VersionNodePath(new 
DatabaseRuleNodePath(alterRuleItem.getDatabaseName(), ruleType, 
databaseRuleItem));
+        VersionNodePath versionNodePath = getVersionNodePath(alterRuleItem);
         String yamlContent = 
metaDataPersistFacade.getMetaDataVersionService().loadContent(versionNodePath);
         String databaseName = alterRuleItem.getDatabaseName();
         RuleConfiguration currentRuleConfig = 
processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName));
@@ -73,6 +72,15 @@ public final class DatabaseRuleItemManager {
         }
     }
     
+    private VersionNodePath getVersionNodePath(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));
+    }
+    
     /**
      * Drop rule item.
      *

Reply via email to