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

tuichenchuxin 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 f788f6138ac Fix global active version bug (#26435)
f788f6138ac is described below

commit f788f6138ac081d6e346eb7087d27688aa1cc5b9
Author: zhaojinchao <[email protected]>
AuthorDate: Mon Jun 19 17:45:58 2023 +0800

    Fix global active version bug (#26435)
---
 .../persist/service/config/global/NewGlobalRulePersistService.java  | 6 +++++-
 .../persist/service/config/global/NewPropertiesPersistService.java  | 4 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewGlobalRulePersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewGlobalRulePersistService.java
index ce603fa825a..d161bf00bc0 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewGlobalRulePersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewGlobalRulePersistService.java
@@ -83,7 +83,7 @@ public final class NewGlobalRulePersistService extends 
AbstractPersistService im
     private Collection<MetaDataVersion> persistDataNodes(final 
Collection<YamlDataNode> dataNodes) {
         Collection<MetaDataVersion> result = new LinkedList<>();
         for (YamlDataNode each : dataNodes) {
-            if 
(Strings.isNullOrEmpty(NewGlobalNode.getGlobalRuleActiveVersionNode(each.getKey())))
 {
+            if (Strings.isNullOrEmpty(getActiveVersion(each.getKey()))) {
                 
repository.persist(NewGlobalNode.getGlobalRuleActiveVersionNode(each.getKey()), 
DEFAULT_VERSION);
             }
             List<String> versions = 
repository.getChildrenKeys(NewGlobalNode.getGlobalRuleVersionsNode(each.getKey()));
@@ -113,4 +113,8 @@ public final class NewGlobalRulePersistService extends 
AbstractPersistService im
                 
.filter(AuthorityRuleConfiguration.class::isInstance).map(AuthorityRuleConfiguration.class::cast).findFirst();
         return authorityRuleConfig.isPresent() ? 
authorityRuleConfig.get().getUsers() : Collections.emptyList();
     }
+    
+    private String getActiveVersion(final String ruleName) {
+        return 
repository.getDirectly(NewGlobalNode.getGlobalRuleActiveVersionNode(ruleName));
+    }
 }
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
index 4439aaafff6..56c2540688c 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
@@ -42,7 +42,7 @@ public final class NewPropertiesPersistService implements 
GlobalPersistService<P
     
     @Override
     public void persist(final Properties props) {
-        if (Strings.isNullOrEmpty(repository.getDirectly(getActiveVersion()))) 
{
+        if (Strings.isNullOrEmpty(getActiveVersion())) {
             repository.persist(NewGlobalNode.getPropsActiveVersionNode(), 
DEFAULT_VERSION);
         }
         List<String> versions = 
repository.getChildrenKeys(NewGlobalNode.getPropsVersionsNode());
@@ -54,7 +54,7 @@ public final class NewPropertiesPersistService implements 
GlobalPersistService<P
     
     @Override
     public Collection<MetaDataVersion> persistConfig(final Properties props) {
-        if (Strings.isNullOrEmpty(repository.getDirectly(getActiveVersion()))) 
{
+        if (Strings.isNullOrEmpty(getActiveVersion())) {
             repository.persist(NewGlobalNode.getPropsActiveVersionNode(), 
DEFAULT_VERSION);
         }
         List<String> versions = 
repository.getChildrenKeys(NewGlobalNode.getPropsVersionsNode());

Reply via email to