You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/03/03 11:02:08 UTC
(shardingsphere) branch master updated: Use log instead of exception when active version mismatch (#34848)
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 <zh...@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.
*