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

kimmking 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 87a3bc5  fix metaData decorate bug (#7634)
87a3bc5 is described below

commit 87a3bc51648e719e1b47b1d9fc525a4c1467807b
Author: xiaoyu <549477...@qq.com>
AuthorDate: Sun Sep 27 23:10:53 2020 +0800

    fix metaData decorate bug (#7634)
    
    * fix metaData decorate bug
    
    * fix metaData decorate bug
---
 .../infra/metadata/schema/RuleSchemaMetaDataLoader.java        | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoader.java
index 00fcb0c..f208cd7 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoader.java
@@ -160,9 +160,13 @@ public final class RuleSchemaMetaDataLoader {
         schemaMetaData.merge(new SchemaMetaData(tableMetaDataMap));
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     private TableMetaData decorate(final String tableName, final TableMetaData 
tableMetaData) {
-        return OrderedSPIRegistry.getRegisteredServices(rules, 
RuleMetaDataDecorator.class).entrySet().stream()
-                .map(entry -> entry.getValue().decorate(tableName, 
tableMetaData, entry.getKey())).reduce((first, second) -> 
second).orElse(tableMetaData);
+        Map<ShardingSphereRule, RuleMetaDataDecorator> decorators = 
OrderedSPIRegistry.getRegisteredServices(rules, RuleMetaDataDecorator.class);
+        TableMetaData result = null;
+        for (Entry<ShardingSphereRule, RuleMetaDataDecorator> entry : 
decorators.entrySet()) {
+            result = entry.getValue().decorate(tableName, null == result ? 
tableMetaData : result, entry.getKey());
+        }
+        return Optional.ofNullable(result).orElse(tableMetaData);
     }
 }

Reply via email to