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); } /**