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 91a37b559ca Fix create table throws npe (#23074)
91a37b559ca is described below
commit 91a37b559ca6f384d9ff03f1604dc1c3674b36a7
Author: zhaojinchao <[email protected]>
AuthorDate: Sat Dec 24 15:58:49 2022 +0800
Fix create table throws npe (#23074)
---
.../org/apache/shardingsphere/mode/manager/ContextManager.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index bf9bf12b037..585f3f9a974 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -270,7 +270,12 @@ public final class ContextManager implements AutoCloseable
{
SwitchingResource switchingResource =
new
ResourceSwitchManager().createByAlterDataSourceProps(metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData(),
dataSourcePropsMap);
metaDataContexts.getMetaData().getDatabases().putAll(renewDatabase(metaDataContexts.getMetaData().getDatabase(databaseName),
switchingResource));
- metaDataContexts = createMetaDataContexts(databaseName,
switchingResource, null);
+ // TODO Remove this logic when issue #22887 are finished.
+ MetaDataContexts reloadMetaDataContexts =
createMetaDataContexts(databaseName, switchingResource, null);
+
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getSchemas().forEach((schemaName,
schema) ->
reloadMetaDataContexts.getPersistService().getDatabaseMetaDataService()
+
.persist(reloadMetaDataContexts.getMetaData().getActualDatabaseName(databaseName),
schemaName, schema));
+ alterSchemaMetaData(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
metaDataContexts.getMetaData().getDatabase(databaseName));
+ metaDataContexts = reloadMetaDataContexts;
metaDataContexts.getMetaData().getDatabases().putAll(newShardingSphereDatabase(metaDataContexts.getMetaData().getDatabase(databaseName)));
switchingResource.closeStaleDataSources();
} catch (final SQLException ex) {