You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/10/11 10:35:16 UTC
[shardingsphere] branch master updated: Fix data source state NPE when force start (#21484)
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 13c7e535031 Fix data source state NPE when force start (#21484)
13c7e535031 is described below
commit 13c7e53503121ff9bd21a8726204cfddcc806698
Author: ZhangCheng <fl...@outlook.com>
AuthorDate: Tue Oct 11 18:35:08 2022 +0800
Fix data source state NPE when force start (#21484)
* Fix data source state NPE when force start
* Fix
---
.../metadata/database/resource/ShardingSphereResourceMetaData.java | 6 +++---
.../shardingsphere/mode/metadata/MetaDataContextsFactory.java | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ShardingSphereResourceMetaData.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ShardingSphereResourceMetaData.java
index 4d4028da0e7..c61fb1dd007 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ShardingSphereResourceMetaData.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ShardingSphereResourceMetaData.java
@@ -49,12 +49,12 @@ public final class ShardingSphereResourceMetaData {
public ShardingSphereResourceMetaData(final String databaseName, final Map<String, DataSource> dataSources) {
this.dataSources = dataSources;
- databaseType = getDatabaseType(DataSourceStateManager.getInstance().getEnabledDataSourceMap(databaseName, dataSources));
+ databaseType = getDatabaseType(databaseName, dataSources);
dataSourceMetaDataMap = createDataSourceMetaDataMap(dataSources);
}
- private DatabaseType getDatabaseType(final Map<String, DataSource> dataSources) {
- return dataSources.isEmpty() ? null : DatabaseTypeEngine.getDatabaseType(dataSources.values());
+ private DatabaseType getDatabaseType(final String databaseName, final Map<String, DataSource> dataSources) {
+ return dataSources.isEmpty() ? null : DatabaseTypeEngine.getDatabaseType(DataSourceStateManager.getInstance().getEnabledDataSourceMap(databaseName, dataSources).values());
}
private Map<String, DataSourceMetaData> createDataSourceMetaDataMap(final Map<String, DataSource> dataSources) {
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 1a1d4daf4e7..f32316edbd1 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -110,7 +110,7 @@ public final class MetaDataContextsFactory {
private static void checkDataSourceStates(final Map<String, DatabaseConfiguration> databaseConfigs, final Map<String, StorageNodeDataSource> storageNodes, final boolean force) {
Map<String, DataSourceState> storageDataSourceStates = getStorageDataSourceStates(storageNodes);
databaseConfigs.forEach((key, value) -> {
- if (null != value.getDataSources()) {
+ if (null != value.getDataSources() && !value.getDataSources().isEmpty()) {
DataSourceStateManager.getInstance().initStates(key, value.getDataSources(), storageDataSourceStates, force);
}
});