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

panjuan 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 2d7dcb6fadb Refactor ExecuteProcessEngine (#23700)
2d7dcb6fadb is described below

commit 2d7dcb6fadb6b241603088051e559ffa9acbe661
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 22 13:50:48 2023 +0800

    Refactor ExecuteProcessEngine (#23700)
---
 .../executor/sql/process/ExecuteProcessEngine.java      | 17 +++++++++++------
 .../mode/process/GovernanceExecuteProcessReporter.java  | 17 +++++++++--------
 .../subscriber/ProcessStandaloneSubscriber.java         |  3 +--
 3 files changed, 21 insertions(+), 16 deletions(-)

diff --git 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
index 17ce3a7ee76..91b8fd9a97f 100644
--- 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
+++ 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
@@ -50,21 +50,26 @@ public final class ExecuteProcessEngine {
      *
      * @param grantee grantee
      * @param databaseName database name
-     * @return execution id
+     * @return execution ID
      */
     public static String initializeConnection(final Grantee grantee, final 
String databaseName) {
-        ExecutionGroupContext<SQLExecutionUnit> executionGroupContext = new 
ExecutionGroupContext<>(Collections.emptyList());
-        executionGroupContext.setExecutionID(new 
UUID(ThreadLocalRandom.current().nextLong(), 
ThreadLocalRandom.current().nextLong()).toString().replace("-", ""));
-        executionGroupContext.setGrantee(grantee);
-        executionGroupContext.setDatabaseName(databaseName);
+        ExecutionGroupContext<SQLExecutionUnit> executionGroupContext = 
createExecutionGroupContext(grantee, databaseName);
         
OptionalSPIRegistry.findRegisteredService(ExecuteProcessReporter.class).ifPresent(optional
 -> optional.report(executionGroupContext));
         return executionGroupContext.getExecutionID();
     }
     
+    private static ExecutionGroupContext<SQLExecutionUnit> 
createExecutionGroupContext(final Grantee grantee, final String databaseName) {
+        ExecutionGroupContext<SQLExecutionUnit> result = new 
ExecutionGroupContext<>(Collections.emptyList());
+        result.setExecutionID(new UUID(ThreadLocalRandom.current().nextLong(), 
ThreadLocalRandom.current().nextLong()).toString().replace("-", ""));
+        result.setGrantee(grantee);
+        result.setDatabaseName(databaseName);
+        return result;
+    }
+    
     /**
      * Finish connection.
      *
-     * @param executionID execution id
+     * @param executionID execution ID
      */
     public static void finishConnection(final String executionID) {
         
OptionalSPIRegistry.findRegisteredService(ExecuteProcessReporter.class).ifPresent(optional
 -> optional.reportRemove(executionID));
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
index d3107078659..b2c95250108 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/process/GovernanceExecuteProcessReporter.java
@@ -63,14 +63,15 @@ public final class GovernanceExecuteProcessReporter 
implements ExecuteProcessRep
     @Override
     public void reportClean(final String executionID) {
         
ShowProcessListManager.getInstance().removeProcessStatement(executionID);
-        
Optional.ofNullable(ShowProcessListManager.getInstance().getProcessContext(executionID)).ifPresent(
-                executeProcessContext -> {
-                    if (executeProcessContext.isProxyContext()) {
-                        
executeProcessContext.resetExecuteProcessContextToSleep();
-                    } else {
-                        
ShowProcessListManager.getInstance().removeProcessContext(executionID);
-                    }
-                });
+        ExecuteProcessContext executeProcessContext = 
ShowProcessListManager.getInstance().getProcessContext(executionID);
+        if (null == executeProcessContext) {
+            return;
+        }
+        if (executeProcessContext.isProxyContext()) {
+            executeProcessContext.resetExecuteProcessContextToSleep();
+        } else {
+            
ShowProcessListManager.getInstance().removeProcessContext(executionID);
+        }
     }
     
     @Override
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
index 871ab9d2bb4..9eaf487d252 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/subscriber/ProcessStandaloneSubscriber.java
@@ -53,8 +53,7 @@ public final class ProcessStandaloneSubscriber {
      */
     @Subscribe
     public void loadShowProcessListData(final ShowProcessListRequestEvent 
event) {
-        BatchYamlExecuteProcessContext batchYamlExecuteProcessContext = new 
BatchYamlExecuteProcessContext(new ArrayList<>(
-                
ShowProcessListManager.getInstance().getProcessContexts().values()));
+        BatchYamlExecuteProcessContext batchYamlExecuteProcessContext = new 
BatchYamlExecuteProcessContext(new 
ArrayList<>(ShowProcessListManager.getInstance().getProcessContexts().values()));
         eventBusContext.post(new 
ShowProcessListResponseEvent(batchYamlExecuteProcessContext.getContexts().isEmpty()
                 ? Collections.emptyList()
                 : 
Collections.singletonList(YamlEngine.marshal(batchYamlExecuteProcessContext))));

Reply via email to