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 <[email protected]>
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);
}
}