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