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

jianglongtao 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 2b9573ed650 Throw necessary exception for event subscribers (#32701)
2b9573ed650 is described below

commit 2b9573ed65060b787d62115713a7629f569a9762
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Aug 27 13:32:59 2024 +0800

    Throw necessary exception for event subscribers (#32701)
---
 .../mode/metadata/manager/RuleItemManager.java         | 11 ++++-------
 .../GlobalRuleConfigurationEventSubscriber.java        | 11 ++++-------
 .../subscriber/dispatch/MetaDataChangedSubscriber.java | 13 +++++--------
 .../subscriber/dispatch/PropertiesEventSubscriber.java |  7 +++----
 .../dispatch/QualifiedDataSourceSubscriber.java        |  6 +++---
 .../dispatch/StorageUnitEventSubscriber.java           | 18 +++++++-----------
 6 files changed, 26 insertions(+), 40 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index 0fd41820054..194d24bb026 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.mode.metadata.manager;
 
+import com.google.common.base.Preconditions;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropRuleItemEvent;
@@ -54,10 +55,8 @@ public class RuleItemManager {
      */
     @SuppressWarnings({"rawtypes", "unchecked", "unused"})
     public void alterRuleItem(final AlterRuleItemEvent event) throws 
SQLException {
-        if 
(!event.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: {} of key: {}", event.getActiveVersion(), 
event.getActiveVersionKey());
         RuleItemConfigurationChangedProcessor processor = 
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, 
event.getType());
         String yamlContent = 
metaDataPersistService.getMetaDataVersionPersistService()
                 .getVersionPathByActiveVersion(event.getActiveVersionKey(), 
event.getActiveVersion());
@@ -78,9 +77,7 @@ public class RuleItemManager {
     @SuppressWarnings({"rawtypes", "unchecked", "unused"})
     public void dropRuleItem(final DropRuleItemEvent event) throws 
SQLException {
         String databaseName = event.getDatabaseName();
-        if 
(!metaDataContexts.get().getMetaData().containsDatabase(databaseName)) {
-            return;
-        }
+        
Preconditions.checkState(metaDataContexts.get().getMetaData().containsDatabase(databaseName),
 "No database '%s' exists.", databaseName);
         RuleItemConfigurationChangedProcessor processor = 
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, 
event.getType());
         RuleConfiguration currentRuleConfig = 
processor.findRuleConfiguration(metaDataContexts.get().getMetaData().getDatabase(databaseName));
         synchronized (this) {
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
index ac3efcca8f6..6e5c847b29b 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import com.google.common.base.Preconditions;
 import com.google.common.eventbus.Subscribe;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
@@ -44,14 +45,10 @@ public final class GlobalRuleConfigurationEventSubscriber 
implements EventSubscr
     @SuppressWarnings("unchecked")
     @Subscribe
     public synchronized void renew(final AlterGlobalRuleConfigurationEvent 
event) {
-        if (!event.getActiveVersion().equals(
-                
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
 {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         Optional<RuleConfiguration> ruleConfig = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().load(event.getRuleSimpleName());
-        if (!ruleConfig.isPresent()) {
-            return;
-        }
+        Preconditions.checkArgument(ruleConfig.isPresent(), "Can not find rule 
configuration with name: %s", event.getRuleSimpleName());
         
contextManager.getMetaDataContextManager().getGlobalConfigurationManager().alterGlobalRuleConfiguration(
                 
TypedSPILoader.findService(RuleConfigurationPersistDecorator.class, 
ruleConfig.getClass()).map(optional -> 
optional.restore(ruleConfig.get())).orElse(ruleConfig.get()));
     }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
index ddf48cc33d4..0c23fd7005f 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import com.google.common.base.Preconditions;
 import com.google.common.eventbus.Subscribe;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
@@ -75,10 +76,8 @@ public final class MetaDataChangedSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final CreateOrAlterTableEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         Map<String, ShardingSphereTable> tables = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
                 
.getTableMetaDataPersistService().load(event.getDatabaseName(), 
event.getSchemaName(), event.getTableName());
         
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(),
@@ -104,10 +103,8 @@ public final class MetaDataChangedSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final CreateOrAlterViewEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         Map<String, ShardingSphereView> views = 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
                 .getViewMetaDataPersistService().load(event.getDatabaseName(), 
event.getSchemaName(), event.getViewName());
         
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
 event.getSchemaName(),
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
index f728a981ed9..48ac41a8041 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import com.google.common.base.Preconditions;
 import com.google.common.eventbus.Subscribe;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
@@ -38,10 +39,8 @@ public final class PropertiesEventSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final AlterPropertiesEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         
contextManager.getMetaDataContextManager().getGlobalConfigurationManager().alterProperties(contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().load());
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
index 51bde5900a2..8905f3407c5 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import com.google.common.base.Preconditions;
 import com.google.common.eventbus.Subscribe;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -42,9 +43,8 @@ public class QualifiedDataSourceSubscriber implements 
EventSubscriber {
     @Subscribe
     public synchronized void renew(final QualifiedDataSourceStateEvent event) {
         QualifiedDataSource qualifiedDataSource = 
event.getQualifiedDataSource();
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(qualifiedDataSource.getDatabaseName()))
 {
-            return;
-        }
+        
Preconditions.checkState(contextManager.getMetaDataContexts().getMetaData().containsDatabase(qualifiedDataSource.getDatabaseName()),
+                "No database '%s' exists.", 
qualifiedDataSource.getDatabaseName());
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabase(qualifiedDataSource.getDatabaseName());
         for (StaticDataSourceRuleAttribute each : 
database.getRuleMetaData().getAttributes(StaticDataSourceRuleAttribute.class)) {
             each.updateStatus(qualifiedDataSource, 
event.getStatus().getState());
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
index ba45a28bfee..8b140fd2114 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
 
+import com.google.common.base.Preconditions;
 import com.google.common.eventbus.Subscribe;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
@@ -40,10 +41,8 @@ public final class StorageUnitEventSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final RegisterStorageUnitEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         
contextManager.getMetaDataContextManager().getStorageUnitManager().registerStorageUnit(event.getDatabaseName(),
                 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
 event.getStorageUnitName()));
     }
@@ -55,10 +54,8 @@ public final class StorageUnitEventSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final AlterStorageUnitEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-                .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
-            return;
-        }
+        
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+                .getActiveVersionByFullPath(event.getActiveVersionKey())), 
"Invalid active version: %s of key: %s", event.getActiveVersion(), 
event.getActiveVersionKey());
         
contextManager.getMetaDataContextManager().getStorageUnitManager().alterStorageUnit(
                 event.getDatabaseName(), 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
 event.getStorageUnitName()));
     }
@@ -70,9 +67,8 @@ public final class StorageUnitEventSubscriber implements 
EventSubscriber {
      */
     @Subscribe
     public synchronized void renew(final UnregisterStorageUnitEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
+        
Preconditions.checkState(contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()),
+                "No database '%s' exists.", event.getDatabaseName());
         
contextManager.getMetaDataContextManager().getStorageUnitManager().unregisterStorageUnit(event.getDatabaseName(),
 event.getStorageUnitName());
     }
 }

Reply via email to