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

duanzhengqiang 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 405379c11d5 Fix data source out of order causing load metadata not 
right problem. (#28943)
405379c11d5 is described below

commit 405379c11d5416eef9e7989a0bc7e00c8ffbe121
Author: zhaojinchao <zhaojinc...@apache.org>
AuthorDate: Sun Nov 5 10:42:45 2023 +0800

    Fix data source out of order causing load metadata not right problem. 
(#28943)
    
    * Refactor example
    
    * Fixed data source out of order causing load metadata not right problem.
---
 .../infra/rule/builder/database/DatabaseRulesBuilder.java              | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
index e1dce396d8a..baa1a2109b0 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
@@ -61,7 +61,8 @@ public final class DatabaseRulesBuilder {
         for (Entry<RuleConfiguration, DatabaseRuleBuilder> entry : 
getRuleBuilderMap(databaseConfig).entrySet()) {
             RuleConfigurationChecker configChecker = 
OrderedSPILoader.getServicesByClass(
                     RuleConfigurationChecker.class, 
Collections.singleton(entry.getKey().getClass())).get(entry.getKey().getClass());
-            Map<String, DataSource> dataSources = 
databaseConfig.getStorageUnits().entrySet().stream().collect(Collectors.toMap(Entry::getKey,
 storageUnit -> storageUnit.getValue().getDataSource()));
+            Map<String, DataSource> dataSources = 
databaseConfig.getStorageUnits().entrySet().stream()
+                    .collect(Collectors.toMap(Entry::getKey, storageUnit -> 
storageUnit.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new));
             if (null != configChecker) {
                 configChecker.check(databaseName, entry.getKey(), dataSources, 
result);
             }

Reply via email to