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

zhaojinchao 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 6c27725c073 Fix invalid version exception after data source unit 
altered (#34168)
6c27725c073 is described below

commit 6c27725c07369034428e6bbaa2c904f7a96abafe
Author: Haoran Meng <[email protected]>
AuthorDate: Thu Dec 26 21:16:14 2024 +0800

    Fix invalid version exception after data source unit altered (#34168)
---
 .../persist/service/ClusterMetaDataManagerPersistService.java  | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index 6e8bb550423..880df297bbb 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -125,7 +125,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
             MetaDataContexts reloadMetaDataContexts = 
MetaDataContextsFactory.createBySwitchResource(databaseName, false,
                     switchingResource, originalMetaDataContexts, 
metaDataPersistService, metaDataContextManager.getComputeNodeInstanceContext());
             
metaDataPersistService.getDataSourceUnitService().persist(databaseName, 
toBeRegisteredProps);
-            afterStorageUnitsRegistered(databaseName, 
originalMetaDataContexts, reloadMetaDataContexts);
+            afterStorageUnitsAltered(databaseName, originalMetaDataContexts, 
reloadMetaDataContexts);
             reloadMetaDataContexts.close();
         } finally {
             closeNewDataSources(newDataSources);
@@ -179,7 +179,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         return 
toBeDroppedResourceNames.stream().filter(propsMap::containsKey).collect(Collectors.toList());
     }
     
-    private void afterStorageUnitsRegistered(final String databaseName, final 
MetaDataContexts originalMetaDataContexts, final MetaDataContexts 
reloadMetaDataContexts) {
+    private void afterStorageUnitsAltered(final String databaseName, final 
MetaDataContexts originalMetaDataContexts, final MetaDataContexts 
reloadMetaDataContexts) {
         
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
                 .ifPresent(optional -> 
optional.getSchemaData().forEach((schemaName, schemaData) -> 
metaDataPersistService.getShardingSphereDataPersistService()
                         
.persist(originalMetaDataContexts.getMetaData().getDatabase(databaseName), 
schemaName, schemaData)));
@@ -187,12 +187,6 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
                 
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
     }
     
-    private void afterStorageUnitsAltered(final String databaseName, final 
MetaDataContexts originalMetaDataContexts, final MetaDataContexts 
reloadMetaDataContexts) {
-        
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getAllSchemas().forEach(each
 -> metaDataPersistService.getDatabaseMetaDataFacade()
-                
.getSchema().alterByRuleAltered(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
 each));
-        afterStorageUnitsRegistered(databaseName, originalMetaDataContexts, 
reloadMetaDataContexts);
-    }
-    
     private void afterStorageUnitsDropped(final String databaseName, final 
MetaDataContexts originalMetaDataContexts, final MetaDataContexts 
reloadMetaDataContexts) {
         
reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getAllSchemas().forEach(each
 -> metaDataPersistService.getDatabaseMetaDataFacade()
                 
.getSchema().alterByRuleDropped(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
 each));

Reply via email to