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

menghaoran 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 865da4240b4 Refactor RALBackendHandler.init() (#18273)
865da4240b4 is described below

commit 865da4240b409fb0bcbcda6480dee2641647a0f9
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 10 07:23:53 2022 +0800

    Refactor RALBackendHandler.init() (#18273)
---
 .../distsql/ral/QueryableRALBackendHandler.java    |  4 +-
 .../text/distsql/ral/RALBackendHandler.java        |  6 +-
 .../text/distsql/ral/RALBackendHandlerFactory.java | 86 ++++++++++------------
 .../distsql/ral/UpdatableRALBackendHandler.java    |  6 +-
 .../text/distsql/ral/advanced/FormatHandler.java   |  2 +-
 .../ral/advanced/ParseDistSQLBackendHandler.java   |  6 +-
 .../ral/advanced/PreviewBackendHandler.java        |  6 +-
 .../queryable/CountInstanceRulesHandler.java       |  2 +-
 .../ExportDatabaseConfigurationHandler.java        |  6 +-
 .../common/queryable/ShowAuthorityRuleHandler.java |  2 +-
 .../ral/common/queryable/ShowInstanceHandler.java  |  2 +-
 .../common/queryable/ShowInstanceModeHandler.java  |  2 +-
 ...ShowReadwriteSplittingReadResourcesHandler.java |  6 +-
 .../common/queryable/ShowSQLParserRuleHandler.java |  2 +-
 .../common/queryable/ShowTableMetadataHandler.java |  6 +-
 .../common/queryable/ShowTrafficRulesHandler.java  |  2 +-
 .../queryable/ShowTransactionRuleHandler.java      |  2 +-
 .../ral/common/queryable/ShowVariableHandler.java  |  6 +-
 .../ral/common/updatable/AlterInstanceHandler.java |  2 +-
 .../updatable/AlterSQLParserRuleHandler.java       |  2 +-
 .../common/updatable/AlterTrafficRuleHandler.java  |  2 +-
 .../updatable/AlterTransactionRuleHandler.java     |  2 +-
 .../ral/common/updatable/ApplyDistSQLHandler.java  |  2 +-
 .../common/updatable/CreateTrafficRuleHandler.java |  2 +-
 .../common/updatable/DiscardDistSQLHandler.java    |  2 +-
 .../common/updatable/DropTrafficRuleHandler.java   |  2 +-
 .../ImportDatabaseConfigurationHandler.java        |  2 +-
 .../ral/common/updatable/LabelInstanceHandler.java |  2 +-
 .../common/updatable/PrepareDistSQLHandler.java    |  2 +-
 .../updatable/RefreshTableMetadataHandler.java     |  6 +-
 .../common/updatable/SetInstanceStatusHandler.java |  2 +-
 .../SetReadwriteSplittingStatusHandler.java        |  6 +-
 .../ral/common/updatable/SetVariableHandler.java   |  6 +-
 .../common/updatable/UnlabelInstanceHandler.java   |  2 +-
 .../advance/ParseDistSQLBackendHandlerTest.java    |  6 +-
 .../common/queryable/CountInstanceRulesTest.java   |  6 +-
 .../ExportDatabaseConfigurationHandlerTest.java    |  3 +-
 .../queryable/ShowAuthorityRuleHandlerTest.java    |  4 +-
 .../queryable/ShowInstanceModeHandlerTest.java     |  3 +-
 .../queryable/ShowSQLParserRuleHandlerTest.java    |  3 +-
 .../queryable/ShowTableMetadataHandlerTest.java    |  3 +-
 .../queryable/ShowTrafficRulesHandlerTest.java     |  3 +-
 .../queryable/ShowTransactionRuleHandlerTest.java  |  6 +-
 .../queryable/ShowVariableBackendHandlerTest.java  | 18 +++--
 .../common/updatable/AlterInstanceHandlerTest.java | 12 ++-
 .../updatable/AlterSQLParserRuleHandlerTest.java   |  8 +-
 .../updatable/AlterTrafficRuleHandlerTest.java     | 16 +++-
 .../updatable/CreateTrafficRuleHandlerTest.java    | 17 ++++-
 .../updatable/DropTrafficRuleHandlerTest.java      | 24 ++++--
 .../ImportDatabaseConfigurationHandlerTest.java    |  3 +-
 .../updatable/SetVariableBackendHandlerTest.java   | 32 ++++++--
 .../common/updatable/SetVariableExecutorTest.java  | 12 ++-
 52 files changed, 225 insertions(+), 152 deletions(-)

diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
index fe6d53062a2..4dbe4e9eed7 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
@@ -36,8 +36,10 @@ import java.util.stream.Collectors;
 
 /**
  * Queryable RAL backend handler.
+ * 
+ * @param <E> type of RAL statement
  */
-public abstract class QueryableRALBackendHandler<E extends RALStatement, R 
extends QueryableRALBackendHandler> extends RALBackendHandler<E, R> {
+public abstract class QueryableRALBackendHandler<E extends RALStatement> 
extends RALBackendHandler<E> {
     
     private List<QueryHeader> queryHeaders;
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
index 6034c074fcb..215c39bca51 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
@@ -33,7 +33,7 @@ import java.sql.SQLException;
  * RAL backend handler.
  */
 @Getter
-public abstract class RALBackendHandler<E extends RALStatement, R extends 
RALBackendHandler> implements TextProtocolBackendHandler {
+public abstract class RALBackendHandler<E extends RALStatement> implements 
TextProtocolBackendHandler {
     
     private E sqlStatement;
     
@@ -41,11 +41,9 @@ public abstract class RALBackendHandler<E extends 
RALStatement, R extends RALBac
      * Method to initialize handler, this method needs to be rewritten when 
the handler has properties other than sql statement.
      *
      * @param parameter parameters required by handler
-     * @return the object itself
      */
-    public R init(final HandlerParameter<E> parameter) {
+    public void init(final HandlerParameter<E> parameter) {
         sqlStatement = parameter.getStatement();
-        return (R) this;
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
index a9a107c67b5..c8b86128c91 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
@@ -92,7 +92,7 @@ import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.Sho
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.SetReadwriteSplittingStatusStatement;
 
 import java.sql.SQLException;
-import java.util.LinkedHashMap;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -101,49 +101,39 @@ import java.util.Map;
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class RALBackendHandlerFactory {
     
-    private static final Map<String, Class<? extends RALBackendHandler>> 
UPDATABLE_HANDLER_MAP = new LinkedHashMap<>();
-    
-    private static final Map<String, Class<? extends RALBackendHandler>> 
QUERYABLE_HANDLER_MAP = new LinkedHashMap<>();
+    private static final Map<String, Class<? extends RALBackendHandler>> 
HANDLERS = new HashMap<>();
     
     static {
-        initUpdatableHandlerMap();
-        initQueryableHandlerMap();
-    }
-    
-    private static void initUpdatableHandlerMap() {
-        UPDATABLE_HANDLER_MAP.put(LabelInstanceStatement.class.getName(), 
LabelInstanceHandler.class);
-        UPDATABLE_HANDLER_MAP.put(UnlabelInstanceStatement.class.getName(), 
UnlabelInstanceHandler.class);
-        UPDATABLE_HANDLER_MAP.put(SetInstanceStatusStatement.class.getName(), 
SetInstanceStatusHandler.class);
-        UPDATABLE_HANDLER_MAP.put(SetVariableStatement.class.getName(), 
SetVariableHandler.class);
-        UPDATABLE_HANDLER_MAP.put(AlterInstanceStatement.class.getName(), 
AlterInstanceHandler.class);
-        
UPDATABLE_HANDLER_MAP.put(SetReadwriteSplittingStatusStatement.class.getName(), 
SetReadwriteSplittingStatusHandler.class);
-        
UPDATABLE_HANDLER_MAP.put(RefreshTableMetadataStatement.class.getName(), 
RefreshTableMetadataHandler.class);
-        UPDATABLE_HANDLER_MAP.put(CreateTrafficRuleStatement.class.getName(), 
CreateTrafficRuleHandler.class);
-        UPDATABLE_HANDLER_MAP.put(AlterTrafficRuleStatement.class.getName(), 
AlterTrafficRuleHandler.class);
-        UPDATABLE_HANDLER_MAP.put(DropTrafficRuleStatement.class.getName(), 
DropTrafficRuleHandler.class);
-        UPDATABLE_HANDLER_MAP.put(AlterSQLParserRuleStatement.class.getName(), 
AlterSQLParserRuleHandler.class);
-        
UPDATABLE_HANDLER_MAP.put(AlterTransactionRuleStatement.class.getName(), 
AlterTransactionRuleHandler.class);
-        UPDATABLE_HANDLER_MAP.put(PrepareDistSQLStatement.class.getName(), 
PrepareDistSQLHandler.class);
-        UPDATABLE_HANDLER_MAP.put(ApplyDistSQLStatement.class.getName(), 
ApplyDistSQLHandler.class);
-        UPDATABLE_HANDLER_MAP.put(DiscardDistSQLStatement.class.getName(), 
DiscardDistSQLHandler.class);
-        
UPDATABLE_HANDLER_MAP.put(ImportDatabaseConfigurationStatement.class.getName(), 
ImportDatabaseConfigurationHandler.class);
-    }
-    
-    private static void initQueryableHandlerMap() {
-        QUERYABLE_HANDLER_MAP.put(ShowInstanceStatement.class.getName(), 
ShowInstanceHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowInstanceModeStatement.class.getName(), 
ShowInstanceModeHandler.class);
-        QUERYABLE_HANDLER_MAP.put(CountInstanceRulesStatement.class.getName(), 
CountInstanceRulesHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowVariableStatement.class.getName(), 
ShowVariableHandler.class);
-        
QUERYABLE_HANDLER_MAP.put(ShowReadwriteSplittingReadResourcesStatement.class.getName(),
 ShowReadwriteSplittingReadResourcesHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowAuthorityRuleStatement.class.getName(), 
ShowAuthorityRuleHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowSQLParserRuleStatement.class.getName(), 
ShowSQLParserRuleHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowTableMetadataStatement.class.getName(), 
ShowTableMetadataHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ShowTrafficRulesStatement.class.getName(), 
ShowTrafficRulesHandler.class);
-        
QUERYABLE_HANDLER_MAP.put(ShowTransactionRuleStatement.class.getName(), 
ShowTransactionRuleHandler.class);
-        
QUERYABLE_HANDLER_MAP.put(ExportDatabaseConfigurationStatement.class.getName(), 
ExportDatabaseConfigurationHandler.class);
-        QUERYABLE_HANDLER_MAP.put(ParseStatement.class.getName(), 
ParseDistSQLBackendHandler.class);
-        QUERYABLE_HANDLER_MAP.put(PreviewStatement.class.getName(), 
PreviewBackendHandler.class);
-        QUERYABLE_HANDLER_MAP.put(FormatStatement.class.getName(), 
FormatHandler.class);
+        HANDLERS.put(LabelInstanceStatement.class.getName(), 
LabelInstanceHandler.class);
+        HANDLERS.put(UnlabelInstanceStatement.class.getName(), 
UnlabelInstanceHandler.class);
+        HANDLERS.put(SetInstanceStatusStatement.class.getName(), 
SetInstanceStatusHandler.class);
+        HANDLERS.put(SetVariableStatement.class.getName(), 
SetVariableHandler.class);
+        HANDLERS.put(AlterInstanceStatement.class.getName(), 
AlterInstanceHandler.class);
+        HANDLERS.put(SetReadwriteSplittingStatusStatement.class.getName(), 
SetReadwriteSplittingStatusHandler.class);
+        HANDLERS.put(RefreshTableMetadataStatement.class.getName(), 
RefreshTableMetadataHandler.class);
+        HANDLERS.put(CreateTrafficRuleStatement.class.getName(), 
CreateTrafficRuleHandler.class);
+        HANDLERS.put(AlterTrafficRuleStatement.class.getName(), 
AlterTrafficRuleHandler.class);
+        HANDLERS.put(DropTrafficRuleStatement.class.getName(), 
DropTrafficRuleHandler.class);
+        HANDLERS.put(AlterSQLParserRuleStatement.class.getName(), 
AlterSQLParserRuleHandler.class);
+        HANDLERS.put(AlterTransactionRuleStatement.class.getName(), 
AlterTransactionRuleHandler.class);
+        HANDLERS.put(PrepareDistSQLStatement.class.getName(), 
PrepareDistSQLHandler.class);
+        HANDLERS.put(ApplyDistSQLStatement.class.getName(), 
ApplyDistSQLHandler.class);
+        HANDLERS.put(DiscardDistSQLStatement.class.getName(), 
DiscardDistSQLHandler.class);
+        HANDLERS.put(ImportDatabaseConfigurationStatement.class.getName(), 
ImportDatabaseConfigurationHandler.class);
+        HANDLERS.put(ShowInstanceStatement.class.getName(), 
ShowInstanceHandler.class);
+        HANDLERS.put(ShowInstanceModeStatement.class.getName(), 
ShowInstanceModeHandler.class);
+        HANDLERS.put(CountInstanceRulesStatement.class.getName(), 
CountInstanceRulesHandler.class);
+        HANDLERS.put(ShowVariableStatement.class.getName(), 
ShowVariableHandler.class);
+        
HANDLERS.put(ShowReadwriteSplittingReadResourcesStatement.class.getName(), 
ShowReadwriteSplittingReadResourcesHandler.class);
+        HANDLERS.put(ShowAuthorityRuleStatement.class.getName(), 
ShowAuthorityRuleHandler.class);
+        HANDLERS.put(ShowSQLParserRuleStatement.class.getName(), 
ShowSQLParserRuleHandler.class);
+        HANDLERS.put(ShowTableMetadataStatement.class.getName(), 
ShowTableMetadataHandler.class);
+        HANDLERS.put(ShowTrafficRulesStatement.class.getName(), 
ShowTrafficRulesHandler.class);
+        HANDLERS.put(ShowTransactionRuleStatement.class.getName(), 
ShowTransactionRuleHandler.class);
+        HANDLERS.put(ExportDatabaseConfigurationStatement.class.getName(), 
ExportDatabaseConfigurationHandler.class);
+        HANDLERS.put(ParseStatement.class.getName(), 
ParseDistSQLBackendHandler.class);
+        HANDLERS.put(PreviewStatement.class.getName(), 
PreviewBackendHandler.class);
+        HANDLERS.put(FormatStatement.class.getName(), FormatHandler.class);
     }
     
     /**
@@ -164,7 +154,7 @@ public final class RALBackendHandlerFactory {
         if (sqlStatement instanceof UpdatableScalingRALStatement) {
             return new 
UpdatableScalingRALBackendHandler((UpdatableScalingRALStatement) sqlStatement);
         }
-        return getHandler(sqlStatement, new HandlerParameter(sqlStatement, 
connectionSession));
+        return getHandler(sqlStatement, connectionSession);
     }
     
     private static RALBackendHandler newInstance(final Class<? extends 
RALBackendHandler> clazz) {
@@ -175,11 +165,13 @@ public final class RALBackendHandlerFactory {
         }
     }
     
-    private static RALBackendHandler getHandler(final RALStatement 
sqlStatement, final HandlerParameter<RALStatement> parameter) {
-        Class<? extends RALBackendHandler> clazz = 
UPDATABLE_HANDLER_MAP.getOrDefault(sqlStatement.getClass().getName(), 
QUERYABLE_HANDLER_MAP.get(sqlStatement.getClass().getName()));
+    private static RALBackendHandler<?> getHandler(final RALStatement 
sqlStatement, final ConnectionSession connectionSession) {
+        Class<? extends RALBackendHandler> clazz = 
HANDLERS.get(sqlStatement.getClass().getName());
         if (null == clazz) {
-            throw new UnsupportedOperationException(String.format("Unsupported 
statement : %s", sqlStatement.getClass().getCanonicalName()));
+            throw new UnsupportedOperationException(String.format("Unsupported 
SQL statement : %s", sqlStatement.getClass().getCanonicalName()));
         }
-        return newInstance(clazz).init(parameter);
+        RALBackendHandler<?> result = newInstance(clazz);
+        result.init(new HandlerParameter(sqlStatement, connectionSession));
+        return result;
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
index a302748a762..862dc93e72c 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
@@ -24,9 +24,11 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 
 /**
- * Updatable RAL backend handler .
+ * Updatable RAL backend handler.
+ * 
+ * @param <E> type of RAL Statement
  */
-public abstract class UpdatableRALBackendHandler<E extends RALStatement, R 
extends UpdatableRALBackendHandler> extends RALBackendHandler<E, R> {
+public abstract class UpdatableRALBackendHandler<E extends RALStatement> 
extends RALBackendHandler<E> {
     
     @Override
     protected final ResponseHeader handle(final ContextManager contextManager, 
final E sqlStatement) throws DistSQLException {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
index 4f6077d9070..594ec72f6a4 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
@@ -35,7 +35,7 @@ import java.util.Properties;
 /**
  * Format handler.
  */
-public final class FormatHandler extends 
QueryableRALBackendHandler<FormatStatement, FormatHandler> {
+public final class FormatHandler extends 
QueryableRALBackendHandler<FormatStatement> {
     
     private static final String FORMATTED_RESULT = "formatted_result";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
index 0eb00f3f326..f2f0b9a655f 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
@@ -39,7 +39,7 @@ import java.util.Optional;
 /**
  * Parse dist sql backend handler.
  */
-public final class ParseDistSQLBackendHandler extends 
QueryableRALBackendHandler<ParseStatement, ParseDistSQLBackendHandler> {
+public final class ParseDistSQLBackendHandler extends 
QueryableRALBackendHandler<ParseStatement> {
     
     private static final String PARSED_STATEMENT = "parsed_statement";
     
@@ -48,9 +48,9 @@ public final class ParseDistSQLBackendHandler extends 
QueryableRALBackendHandler
     private ConnectionSession connectionSession;
     
     @Override
-    public ParseDistSQLBackendHandler init(final 
HandlerParameter<ParseStatement> parameter) {
+    public void init(final HandlerParameter<ParseStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewBackendHandler.java
index 5d4e4fd12a7..3bb943f2bdb 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewBackendHandler.java
@@ -76,7 +76,7 @@ import java.util.stream.Collectors;
 /**
  * Preview backend handler.
  */
-public final class PreviewBackendHandler extends 
QueryableRALBackendHandler<PreviewStatement, PreviewBackendHandler> {
+public final class PreviewBackendHandler extends 
QueryableRALBackendHandler<PreviewStatement> {
     
     private static final String DATA_SOURCE_NAME = "data_source_name";
     
@@ -87,9 +87,9 @@ public final class PreviewBackendHandler extends 
QueryableRALBackendHandler<Prev
     private final KernelProcessor kernelProcessor = new KernelProcessor();
     
     @Override
-    public PreviewBackendHandler init(final HandlerParameter<PreviewStatement> 
parameter) {
+    public void init(final HandlerParameter<PreviewStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesHandler.java
index 39942feea4f..18f0254f554 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesHandler.java
@@ -45,7 +45,7 @@ import java.util.function.Supplier;
 /**
  * Count instance rules handler.
  */
-public final class CountInstanceRulesHandler extends 
QueryableRALBackendHandler<CountInstanceRulesStatement, 
CountInstanceRulesHandler> {
+public final class CountInstanceRulesHandler extends 
QueryableRALBackendHandler<CountInstanceRulesStatement> {
     
     private static final int DEFAULT_COUNT = 0;
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
index fdbf4c727d0..55d21c3fc72 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
@@ -56,7 +56,7 @@ import java.util.Map.Entry;
 /**
  * Export database configuration handler.
  */
-public final class ExportDatabaseConfigurationHandler extends 
QueryableRALBackendHandler<ExportDatabaseConfigurationStatement, 
ExportDatabaseConfigurationHandler> {
+public final class ExportDatabaseConfigurationHandler extends 
QueryableRALBackendHandler<ExportDatabaseConfigurationStatement> {
     
     private static final String RESULT = "result";
     
@@ -101,9 +101,9 @@ public final class ExportDatabaseConfigurationHandler 
extends QueryableRALBacken
     }
     
     @Override
-    public ExportDatabaseConfigurationHandler init(final 
HandlerParameter<ExportDatabaseConfigurationStatement> parameter) {
+    public void init(final 
HandlerParameter<ExportDatabaseConfigurationStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandler.java
index de974d8340f..ad52431b494 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandler.java
@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
 /**
  * Show authority rule handler.
  */
-public final class ShowAuthorityRuleHandler extends 
QueryableRALBackendHandler<ShowAuthorityRuleStatement, 
ShowAuthorityRuleHandler> {
+public final class ShowAuthorityRuleHandler extends 
QueryableRALBackendHandler<ShowAuthorityRuleStatement> {
     
     private static final String USERS = "users";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceHandler.java
index b9223a36282..f9c567a76c4 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceHandler.java
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
 /**
  * Show instance handler.
  */
-public final class ShowInstanceHandler extends 
QueryableRALBackendHandler<ShowInstanceStatement, ShowInstanceHandler> {
+public final class ShowInstanceHandler extends 
QueryableRALBackendHandler<ShowInstanceStatement> {
     
     private static final String DELIMITER = "@";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandler.java
index a803bd333b2..5aa1a07a0bf 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandler.java
@@ -33,7 +33,7 @@ import java.util.List;
 /**
  * Show instance mode handler.
  */
-public final class ShowInstanceModeHandler extends 
QueryableRALBackendHandler<ShowInstanceModeStatement, ShowInstanceModeHandler> {
+public final class ShowInstanceModeHandler extends 
QueryableRALBackendHandler<ShowInstanceModeStatement> {
     
     private static final String INSTANCE_ID = "instance_id";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
index efd4f271a6e..23ad76e63a6 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
@@ -52,7 +52,7 @@ import java.util.stream.Collectors;
 /**
  * Show readwrite-splitting read resources executor.
  */
-public final class ShowReadwriteSplittingReadResourcesHandler extends 
QueryableRALBackendHandler<ShowReadwriteSplittingReadResourcesStatement, 
ShowReadwriteSplittingReadResourcesHandler> {
+public final class ShowReadwriteSplittingReadResourcesHandler extends 
QueryableRALBackendHandler<ShowReadwriteSplittingReadResourcesStatement> {
     
     private static final String RESOURCE = "resource";
     
@@ -63,9 +63,9 @@ public final class ShowReadwriteSplittingReadResourcesHandler 
extends QueryableR
     private ConnectionSession connectionSession;
     
     @Override
-    public ShowReadwriteSplittingReadResourcesHandler init(final 
HandlerParameter<ShowReadwriteSplittingReadResourcesStatement> parameter) {
+    public void init(final 
HandlerParameter<ShowReadwriteSplittingReadResourcesStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandler.java
index 1bb25b2ca7b..b468e3f2fc0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandler.java
@@ -34,7 +34,7 @@ import java.util.Optional;
 /**
  * Show SQL parser rule handler.
  */
-public final class ShowSQLParserRuleHandler extends 
QueryableRALBackendHandler<ShowSQLParserRuleStatement, 
ShowSQLParserRuleHandler> {
+public final class ShowSQLParserRuleHandler extends 
QueryableRALBackendHandler<ShowSQLParserRuleStatement> {
     
     private static final Gson GSON = new Gson();
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
index 0d205d895d9..7f30717bedc 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
 /**
  * Show table metadata handler.
  */
-public final class ShowTableMetadataHandler extends 
QueryableRALBackendHandler<ShowTableMetadataStatement, 
ShowTableMetadataHandler> {
+public final class ShowTableMetadataHandler extends 
QueryableRALBackendHandler<ShowTableMetadataStatement> {
     
     private static final String SCHEMA_NAME = "schema_name";
     
@@ -52,9 +52,9 @@ public final class ShowTableMetadataHandler extends 
QueryableRALBackendHandler<S
     private ConnectionSession connectionSession;
     
     @Override
-    public ShowTableMetadataHandler init(final 
HandlerParameter<ShowTableMetadataStatement> parameter) {
+    public void init(final HandlerParameter<ShowTableMetadataStatement> 
parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandler.java
index 60b30cd0c62..6a418f71050 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandler.java
@@ -38,7 +38,7 @@ import java.util.Optional;
  * Show traffic rules handler.
  */
 @RequiredArgsConstructor
-public final class ShowTrafficRulesHandler extends 
QueryableRALBackendHandler<ShowTrafficRulesStatement, ShowTrafficRulesHandler> {
+public final class ShowTrafficRulesHandler extends 
QueryableRALBackendHandler<ShowTrafficRulesStatement> {
     
     private static final String RULE_NAME = "name";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandler.java
index e887bf44466..927158c6b2a 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandler.java
@@ -36,7 +36,7 @@ import java.util.Optional;
  * Show transaction rule handler.
  */
 @RequiredArgsConstructor
-public final class ShowTransactionRuleHandler extends 
QueryableRALBackendHandler<ShowTransactionRuleStatement, 
ShowTransactionRuleHandler> {
+public final class ShowTransactionRuleHandler extends 
QueryableRALBackendHandler<ShowTransactionRuleStatement> {
     
     private static final String DEFAULT_TYPE = "default_type";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableHandler.java
index fe8934c9fa9..8cffa791e82 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableHandler.java
@@ -39,7 +39,7 @@ import java.util.List;
 /**
  * Show variable handler.
  */
-public final class ShowVariableHandler extends 
QueryableRALBackendHandler<ShowVariableStatement, ShowVariableHandler> {
+public final class ShowVariableHandler extends 
QueryableRALBackendHandler<ShowVariableStatement> {
     
     private static final String VARIABLE_NAME = "variable_name";
     
@@ -48,9 +48,9 @@ public final class ShowVariableHandler extends 
QueryableRALBackendHandler<ShowVa
     private ConnectionSession connectionSession;
     
     @Override
-    public ShowVariableHandler init(final 
HandlerParameter<ShowVariableStatement> parameter) {
+    public void init(final HandlerParameter<ShowVariableStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
index 05c68523a46..be8783f86f8 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
@@ -31,7 +31,7 @@ import java.util.Optional;
 /**
  * Alter instance handler.
  */
-public final class AlterInstanceHandler extends 
UpdatableRALBackendHandler<AlterInstanceStatement, AlterInstanceHandler> {
+public final class AlterInstanceHandler extends 
UpdatableRALBackendHandler<AlterInstanceStatement> {
     
     private static final String XA_RECOVERY_NODES = "xa_recovery_nodes";
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
index c35cf3b6c32..9ce86e52ca8 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
@@ -34,7 +34,7 @@ import java.util.Optional;
 /**
  * Alter SQL parser rule statement handler.
  */
-public final class AlterSQLParserRuleHandler extends 
UpdatableRALBackendHandler<AlterSQLParserRuleStatement, 
AlterSQLParserRuleHandler> {
+public final class AlterSQLParserRuleHandler extends 
UpdatableRALBackendHandler<AlterSQLParserRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterSQLParserRuleStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
index b2729026f89..e82cb61ccb6 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
 /**
  * Alter traffic rule handler.
  */
-public final class AlterTrafficRuleHandler extends 
UpdatableRALBackendHandler<AlterTrafficRuleStatement, AlterTrafficRuleHandler> {
+public final class AlterTrafficRuleHandler extends 
UpdatableRALBackendHandler<AlterTrafficRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterTrafficRuleStatement sqlStatement) throws DistSQLException {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
index 3699a266eff..b74b4252bf0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
@@ -35,7 +35,7 @@ import java.util.Optional;
 /**
  * Alter transaction rule statement handler.
  */
-public final class AlterTransactionRuleHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement, 
AlterTrafficRuleHandler> {
+public final class AlterTransactionRuleHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterTransactionRuleStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
index 1783ca71265..9c509f9e88e 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 /**
  * Apply dist sql statement handler.
  */
-public final class ApplyDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement, 
AlterTrafficRuleHandler> {
+public final class ApplyDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterTransactionRuleStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
index 3ece9feb9fc..7453c0df7d3 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
 /**
  * Create traffic rule handler.
  */
-public final class CreateTrafficRuleHandler extends 
UpdatableRALBackendHandler<CreateTrafficRuleStatement, 
CreateTrafficRuleHandler> {
+public final class CreateTrafficRuleHandler extends 
UpdatableRALBackendHandler<CreateTrafficRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
CreateTrafficRuleStatement sqlStatement) throws DistSQLException {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
index 0d5fc016550..6f850ab5792 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 /**
  * Discard dist sql statement handler.
  */
-public final class DiscardDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement, 
AlterTrafficRuleHandler> {
+public final class DiscardDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterTransactionRuleStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
index 93bace1aea2..72fea003d52 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
 /**
  * Drop traffic rule statement handler.
  */
-public final class DropTrafficRuleHandler extends 
UpdatableRALBackendHandler<DropTrafficRuleStatement, DropTrafficRuleHandler> {
+public final class DropTrafficRuleHandler extends 
UpdatableRALBackendHandler<DropTrafficRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
DropTrafficRuleStatement sqlStatement) throws DistSQLException {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
index 1d67e9b86e5..344c77ca7dc 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
@@ -74,7 +74,7 @@ import java.util.stream.Collectors;
 /**
  * Import database configuration handler.
  */
-public final class ImportDatabaseConfigurationHandler extends 
UpdatableRALBackendHandler<ImportDatabaseConfigurationStatement, 
ImportDatabaseConfigurationHandler> {
+public final class ImportDatabaseConfigurationHandler extends 
UpdatableRALBackendHandler<ImportDatabaseConfigurationStatement> {
     
     private final DataSourcePropertiesValidator validator = new 
DataSourcePropertiesValidator();
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
index b4638131b9d..372e3786a68 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
@@ -35,7 +35,7 @@ import java.util.Optional;
 /**
  * Label instance handler.
  */
-public final class LabelInstanceHandler extends 
UpdatableRALBackendHandler<LabelInstanceStatement, LabelInstanceHandler> {
+public final class LabelInstanceHandler extends 
UpdatableRALBackendHandler<LabelInstanceStatement> {
     
     @Override
     public void update(final ContextManager contextManager, final 
LabelInstanceStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
index 87ca8ebe708..7ffb2e99698 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 /**
  * Prepare dist sql statement handler.
  */
-public final class PrepareDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement, 
AlterTrafficRuleHandler> {
+public final class PrepareDistSQLHandler extends 
UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
AlterTransactionRuleStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
index 908caea7312..be5a0c05bb4 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
@@ -31,14 +31,14 @@ import 
org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 /**
  * Refresh table metadata handler.
  */
-public final class RefreshTableMetadataHandler extends 
UpdatableRALBackendHandler<RefreshTableMetadataStatement, 
RefreshTableMetadataHandler> {
+public final class RefreshTableMetadataHandler extends 
UpdatableRALBackendHandler<RefreshTableMetadataStatement> {
     
     private ConnectionSession connectionSession;
     
     @Override
-    public RefreshTableMetadataHandler init(final 
HandlerParameter<RefreshTableMetadataStatement> parameter) {
+    public void init(final HandlerParameter<RefreshTableMetadataStatement> 
parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
index df958e0fc57..197b82f1c0b 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 /**
  * Set instance status handler.
  */
-public final class SetInstanceStatusHandler extends 
UpdatableRALBackendHandler<SetInstanceStatusStatement, 
SetInstanceStatusHandler> {
+public final class SetInstanceStatusHandler extends 
UpdatableRALBackendHandler<SetInstanceStatusStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
SetInstanceStatusStatement sqlStatement) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
index f70878fbaac..1b62ba96a31 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
@@ -54,16 +54,16 @@ import java.util.stream.Collectors;
 /**
  * Set readwrite-splitting status handler.
  */
-public final class SetReadwriteSplittingStatusHandler extends 
UpdatableRALBackendHandler<SetReadwriteSplittingStatusStatement, 
SetReadwriteSplittingStatusHandler> {
+public final class SetReadwriteSplittingStatusHandler extends 
UpdatableRALBackendHandler<SetReadwriteSplittingStatusStatement> {
     
     private static final String DISABLE = "DISABLE";
     
     private ConnectionSession connectionSession;
     
     @Override
-    public SetReadwriteSplittingStatusHandler init(final 
HandlerParameter<SetReadwriteSplittingStatusStatement> parameter) {
+    public void init(final 
HandlerParameter<SetReadwriteSplittingStatusStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
index 9549961dc41..11908844aad 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
@@ -41,14 +41,14 @@ import java.util.Properties;
 /**
  * Set variable statement handler.
  */
-public final class SetVariableHandler extends 
UpdatableRALBackendHandler<SetVariableStatement, SetVariableHandler> {
+public final class SetVariableHandler extends 
UpdatableRALBackendHandler<SetVariableStatement> {
     
     private ConnectionSession connectionSession;
     
     @Override
-    public SetVariableHandler init(final 
HandlerParameter<SetVariableStatement> parameter) {
+    public void init(final HandlerParameter<SetVariableStatement> parameter) {
+        super.init(parameter);
         connectionSession = parameter.getConnectionSession();
-        return super.init(parameter);
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
index e59b6e2bcc9..8f38d1cb690 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
@@ -37,7 +37,7 @@ import java.util.Optional;
 /**
  * Unlabel instance handler.
  */
-public final class UnlabelInstanceHandler extends 
UpdatableRALBackendHandler<UnlabelInstanceStatement, UnlabelInstanceHandler> {
+public final class UnlabelInstanceHandler extends 
UpdatableRALBackendHandler<UnlabelInstanceStatement> {
     
     @Override
     protected void update(final ContextManager contextManager, final 
UnlabelInstanceStatement sqlStatement) throws DistSQLException {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advance/ParseDistSQLBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advance/ParseDistSQLBackendHandlerTest.java
index 46c4a4e1c1e..6bf67060610 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advance/ParseDistSQLBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advance/ParseDistSQLBackendHandlerTest.java
@@ -67,7 +67,8 @@ public final class ParseDistSQLBackendHandlerTest extends 
ProxyContextRestorer {
     public void assertGetRowData() throws SQLException {
         String sql = "select * from t_order";
         ParseStatement parseStatement = new ParseStatement(sql);
-        ParseDistSQLBackendHandler parseDistSQLBackendHandler = new 
ParseDistSQLBackendHandler().init(new HandlerParameter<>(parseStatement, 
connectionSession));
+        ParseDistSQLBackendHandler parseDistSQLBackendHandler = new 
ParseDistSQLBackendHandler();
+        parseDistSQLBackendHandler.init(new HandlerParameter<>(parseStatement, 
connectionSession));
         parseDistSQLBackendHandler.execute();
         parseDistSQLBackendHandler.next();
         SQLStatement statement = 
sqlParserRule.getSQLParserEngine("MySQL").parse(sql, false);
@@ -79,7 +80,8 @@ public final class ParseDistSQLBackendHandlerTest extends 
ProxyContextRestorer {
     public void assertExecute() throws SQLException {
         String sql = "wrong sql";
         ParseStatement parseStatement = new ParseStatement(sql);
-        ParseDistSQLBackendHandler parseDistSQLBackendHandler = new 
ParseDistSQLBackendHandler().init(new HandlerParameter<>(parseStatement, 
connectionSession));
+        ParseDistSQLBackendHandler parseDistSQLBackendHandler = new 
ParseDistSQLBackendHandler();
+        parseDistSQLBackendHandler.init(new HandlerParameter<>(parseStatement, 
connectionSession));
         parseDistSQLBackendHandler.execute();
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
index 8e70cbeae60..344c5226853 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
@@ -119,7 +119,8 @@ public final class CountInstanceRulesTest extends 
ProxyContextRestorer {
     
     @Test
     public void assertGetRowData() throws SQLException {
-        CountInstanceRulesHandler handler = new 
CountInstanceRulesHandler().init(new RALBackendHandler.HandlerParameter<>(new 
CountInstanceRulesStatement(), null));
+        CountInstanceRulesHandler handler = new CountInstanceRulesHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CountInstanceRulesStatement(), null));
         handler.execute();
         handler.next();
         Collection<Object> actual = handler.getRowData();
@@ -166,7 +167,8 @@ public final class CountInstanceRulesTest extends 
ProxyContextRestorer {
     
     @Test
     public void assertGetRowDataWithoutConfiguration() throws SQLException {
-        CountInstanceRulesHandler handler = new 
CountInstanceRulesHandler().init(new RALBackendHandler.HandlerParameter<>(new 
CountInstanceRulesStatement(), null));
+        CountInstanceRulesHandler handler = new CountInstanceRulesHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CountInstanceRulesStatement(), null));
         
when(database1.getRuleMetaData().getConfigurations()).thenReturn(Collections.emptyList());
         
when(database2.getRuleMetaData().getConfigurations()).thenReturn(Collections.emptyList());
         handler.execute();
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
index 032e60e9dc9..9d9aa14d9a7 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
@@ -70,7 +70,8 @@ public final class ExportDatabaseConfigurationHandlerTest 
extends ProxyContextRe
     
     @Test
     public void assertExportDatabaseExecutor() throws SQLException {
-        ExportDatabaseConfigurationHandler handler = new 
ExportDatabaseConfigurationHandler().init(new 
HandlerParameter<>(createSQLStatement(), mock(ConnectionSession.class)));
+        ExportDatabaseConfigurationHandler handler = new 
ExportDatabaseConfigurationHandler();
+        handler.init(new HandlerParameter<>(createSQLStatement(), 
mock(ConnectionSession.class)));
         handler.execute();
         handler.next();
         Collection<Object> data = new ArrayList<>(handler.getRowData());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandlerTest.java
index e6223e42b29..348a9c2fbfd 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowAuthorityRuleHandlerTest.java
@@ -42,13 +42,13 @@ import static org.mockito.Mockito.when;
 
 public final class ShowAuthorityRuleHandlerTest extends ProxyContextRestorer {
     
-    private final ShowAuthorityRuleHandler handler = new 
ShowAuthorityRuleHandler().init(new RALBackendHandler.HandlerParameter<>(new 
ShowAuthorityRuleStatement(), null));
-    
     @Test
     public void assertAuthorityRule() throws SQLException {
+        ShowAuthorityRuleHandler handler = new ShowAuthorityRuleHandler();
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(getGlobalRuleMetaData());
         ProxyContext.init(contextManager);
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
ShowAuthorityRuleStatement(), null));
         handler.execute();
         handler.next();
         List<Object> data = new ArrayList<>(handler.getRowData());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandlerTest.java
index 4dd9b60042d..c991ca0bde2 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowInstanceModeHandlerTest.java
@@ -45,7 +45,8 @@ public final class ShowInstanceModeHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         InstanceContext instanceContext = createInstanceContext();
         when(contextManager.getInstanceContext()).thenReturn(instanceContext);
-        ShowInstanceModeHandler handler = new 
ShowInstanceModeHandler().init(new RALBackendHandler.HandlerParameter<>(new 
ShowInstanceModeStatement(), null));
+        ShowInstanceModeHandler handler = new ShowInstanceModeHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
ShowInstanceModeStatement(), null));
         ProxyContext.init(contextManager);
         handler.execute();
         handler.next();
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandlerTest.java
index b6acb615e31..ae9fc64809b 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowSQLParserRuleHandlerTest.java
@@ -46,7 +46,8 @@ public final class ShowSQLParserRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(getGlobalRuleMetaData());
         ProxyContext.init(contextManager);
-        ShowSQLParserRuleHandler handler = new 
ShowSQLParserRuleHandler().init(new RALBackendHandler.HandlerParameter<>(new 
ShowSQLParserRuleStatement(), null));
+        ShowSQLParserRuleHandler handler = new ShowSQLParserRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
ShowSQLParserRuleStatement(), null));
         handler.execute();
         handler.next();
         List<Object> data = new ArrayList<>(handler.getRowData());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
index 4816a22ddac..c90214bbff0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
@@ -57,7 +57,8 @@ public final class ShowTableMetadataHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         ConnectionSession connectionSession = mock(ConnectionSession.class, 
RETURNS_DEEP_STUBS);
         when(connectionSession.getDatabaseName()).thenReturn("db_name");
-        ShowTableMetadataHandler handler = new 
ShowTableMetadataHandler().init(new HandlerParameter<>(createSqlStatement(), 
connectionSession));
+        ShowTableMetadataHandler handler = new ShowTableMetadataHandler();
+        handler.init(new HandlerParameter<>(createSqlStatement(), 
connectionSession));
         handler.execute();
         handler.next();
         List<Object> data = new ArrayList<>(handler.getRowData());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandlerTest.java
index 7a44c5a5a61..57397274deb 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTrafficRulesHandlerTest.java
@@ -49,7 +49,8 @@ public class ShowTrafficRulesHandlerTest extends 
ProxyContextRestorer {
     public void assertExecutor() throws SQLException {
         ShowTrafficRulesStatement showTrafficRuleStatement = new 
ShowTrafficRulesStatement();
         showTrafficRuleStatement.setRuleName("rule_name_1");
-        ShowTrafficRulesHandler handler = new 
ShowTrafficRulesHandler().init(new 
RALBackendHandler.HandlerParameter<>(showTrafficRuleStatement, null));
+        ShowTrafficRulesHandler handler = new ShowTrafficRulesHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(showTrafficRuleStatement, null));
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findRuleConfigurations(any())).thenReturn(createTrafficRule());
         ProxyContext.init(contextManager);
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandlerTest.java
index 499d0d3a8e2..fc278870209 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTransactionRuleHandlerTest.java
@@ -41,10 +41,10 @@ import static org.mockito.Mockito.when;
 
 public final class ShowTransactionRuleHandlerTest extends ProxyContextRestorer 
{
     
-    private final ShowTransactionRuleHandler handler = new 
ShowTransactionRuleHandler().init(new RALBackendHandler.HandlerParameter<>(new 
ShowTransactionRuleStatement(), null));
-    
     @Test
     public void assertExecutorWithXA() throws SQLException {
+        ShowTransactionRuleHandler handler = new ShowTransactionRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
ShowTransactionRuleStatement(), null));
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(getGlobalRuleMetaData("XA",
 "Atomikos", getProperties()));
         ProxyContext.init(contextManager);
@@ -61,6 +61,8 @@ public final class ShowTransactionRuleHandlerTest extends 
ProxyContextRestorer {
     
     @Test
     public void assertExecutorWithLocal() throws SQLException {
+        ShowTransactionRuleHandler handler = new ShowTransactionRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
ShowTransactionRuleStatement(), null));
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(getGlobalRuleMetaData("LOCAL",
 null, null));
         ProxyContext.init(contextManager);
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableBackendHandlerTest.java
index 36adca234e7..27cc7a411cf 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowVariableBackendHandlerTest.java
@@ -63,7 +63,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test
     public void assertShowTransactionType() throws SQLException {
         connectionSession.setCurrentDatabase("db");
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new 
ShowVariableStatement("transaction_type"), connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement("transaction_type"), connectionSession));
         ResponseHeader actual = backendHandler.execute();
         assertThat(actual, instanceOf(QueryResponseHeader.class));
         assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(), 
is(2));
@@ -76,7 +77,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test
     public void assertShowCachedConnections() throws SQLException {
         connectionSession.setCurrentDatabase("db");
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new 
ShowVariableStatement("cached_connections"), connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement("cached_connections"), connectionSession));
         ResponseHeader actual = backendHandler.execute();
         assertThat(actual, instanceOf(QueryResponseHeader.class));
         assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(), 
is(2));
@@ -89,7 +91,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test(expected = UnsupportedVariableException.class)
     public void assertShowCachedConnectionFailed() throws SQLException {
         connectionSession.setCurrentDatabase("db");
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new 
ShowVariableStatement("cached_connectionss"), connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement("cached_connectionss"), connectionSession));
         backendHandler.execute();
     }
     
@@ -97,7 +100,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
     public void assertShowAgentPluginsEnabled() throws SQLException {
         
SystemPropertyUtil.setSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
Boolean.TRUE.toString());
         connectionSession.setCurrentDatabase("db");
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new 
ShowVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name()), 
connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name()), 
connectionSession));
         ResponseHeader actual = backendHandler.execute();
         assertThat(actual, instanceOf(QueryResponseHeader.class));
         assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(), 
is(2));
@@ -117,7 +121,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
         Properties props = new Properties();
         props.put("sql-show", Boolean.TRUE.toString());
         when(metaDataContexts.getMetaData().getProps()).thenReturn(new 
ConfigurationProperties(props));
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new 
ShowVariableStatement("SQL_SHOW"), connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement("SQL_SHOW"), connectionSession));
         ResponseHeader actual = backendHandler.execute();
         assertThat(actual, instanceOf(QueryResponseHeader.class));
         assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(), 
is(2));
@@ -135,7 +140,8 @@ public final class ShowVariableBackendHandlerTest extends 
ProxyContextRestorer {
         MetaDataContexts metaDataContexts = mock(MetaDataContexts.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
         when(metaDataContexts.getMetaData().getProps()).thenReturn(new 
ConfigurationProperties(new Properties()));
-        ShowVariableHandler backendHandler = new 
ShowVariableHandler().init(new HandlerParameter<>(new ShowVariableStatement(), 
connectionSession));
+        ShowVariableHandler backendHandler = new ShowVariableHandler();
+        backendHandler.init(new HandlerParameter<>(new 
ShowVariableStatement(), connectionSession));
         ResponseHeader actual = backendHandler.execute();
         assertThat(actual, instanceOf(QueryResponseHeader.class));
         assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(), 
is(2));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandlerTest.java
index 8baf2bd31b7..e17c7edd67d 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandlerTest.java
@@ -40,7 +40,9 @@ public final class AlterInstanceHandlerTest extends 
ProxyContextRestorer {
         String instanceId = "instance_id";
         String key = "key_1";
         String value = "value_1";
-        new AlterInstanceHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null)).execute();
+        AlterInstanceHandler handler = new AlterInstanceHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null));
+        handler.execute();
     }
     
     @Test(expected = UnsupportedOperationException.class)
@@ -51,7 +53,9 @@ public final class AlterInstanceHandlerTest extends 
ProxyContextRestorer {
         String instanceId = "instance_id";
         String key = "xa_recovery_nodes";
         String value = "value_1";
-        new AlterInstanceHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null)).execute();
+        AlterInstanceHandler handler = new AlterInstanceHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null));
+        handler.execute();
     }
     
     @Test(expected = UnsupportedOperationException.class)
@@ -63,7 +67,9 @@ public final class AlterInstanceHandlerTest extends 
ProxyContextRestorer {
         String instanceId = "instance_id";
         String key = "xa_recovery_nodes";
         String value = "value_1";
-        new AlterInstanceHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null)).execute();
+        AlterInstanceHandler handler = new AlterInstanceHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(instanceId, key, value), 
null));
+        handler.execute();
     }
     
     private AlterInstanceStatement getSQLStatement(final String instanceId, 
final String key, final String value) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandlerTest.java
index 2cd8e17d693..ee14a9a0c52 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandlerTest.java
@@ -48,7 +48,9 @@ public final class AlterSQLParserRuleHandlerTest extends 
ProxyContextRestorer {
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findRuleConfigurations(SQLParserRuleConfiguration.class)).thenReturn(Collections.emptyList());
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getConfigurations()).thenReturn(new
 LinkedList<>());
         ProxyContext.init(contextManager);
-        new AlterSQLParserRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(createSQLStatement(), null)).execute();
+        AlterSQLParserRuleHandler handler = new AlterSQLParserRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(createSQLStatement(), null));
+        handler.execute();
         SQLParserRuleConfiguration actual = (SQLParserRuleConfiguration) 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getConfigurations().iterator().next();
         assertTrue(actual.isSqlCommentParseEnabled());
         assertThat(actual.getSqlStatementCache().getInitialCapacity(), 
is(1000));
@@ -66,7 +68,9 @@ public final class AlterSQLParserRuleHandlerTest extends 
ProxyContextRestorer {
                 
.getMetaData().getGlobalRuleMetaData().findRuleConfigurations(SQLParserRuleConfiguration.class)).thenReturn(Collections.singleton(sqlParserRuleConfig));
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getConfigurations()).thenReturn(globalRuleConfigs);
         ProxyContext.init(contextManager);
-        new AlterSQLParserRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(createSQLStatement(), null)).execute();
+        AlterSQLParserRuleHandler handler = new AlterSQLParserRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(createSQLStatement(), null));
+        handler.execute();
         SQLParserRuleConfiguration actual = (SQLParserRuleConfiguration) 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getConfigurations().iterator().next();
         assertTrue(actual.isSqlCommentParseEnabled());
         assertThat(actual.getSqlStatementCache().getInitialCapacity(), 
is(1000));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandlerTest.java
index d86458cb46a..c557338bac3 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandlerTest.java
@@ -53,7 +53,9 @@ public final class AlterTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("input_rule_name", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("invalid", new Properties()), new 
AlgorithmSegment("invalid", new Properties()));
-        new AlterTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null)).execute();
+        AlterTrafficRuleHandler handler = new AlterTrafficRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null));
+        handler.execute();
     }
     
     @Test(expected = InvalidAlgorithmConfigurationException.class)
@@ -63,7 +65,9 @@ public final class AlterTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("rule_name_1", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("invalid", new Properties()), new 
AlgorithmSegment("invalid", new Properties()));
-        new AlterTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null)).execute();
+        AlterTrafficRuleHandler handler = new AlterTrafficRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null));
+        handler.execute();
     }
     
     @Test(expected = RequiredRuleMissedException.class)
@@ -73,7 +77,9 @@ public final class AlterTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("rule_name_3", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), new 
AlgorithmSegment("DISTSQL.FIXTURE", new Properties()));
-        new AlterTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null)).execute();
+        AlterTrafficRuleHandler handler = new AlterTrafficRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment), 
null));
+        handler.execute();
     }
     
     @Test
@@ -85,7 +91,9 @@ public final class AlterTrafficRuleHandlerTest extends 
ProxyContextRestorer {
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), new 
AlgorithmSegment("DISTSQL.FIXTURE", new Properties()));
         TrafficRuleSegment trafficRuleSegment2 = new 
TrafficRuleSegment("rule_name_2", Collections.emptyList(),
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), 
null);
-        new AlterTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment1, 
trafficRuleSegment2), null)).execute();
+        AlterTrafficRuleHandler handler = new AlterTrafficRuleHandler();
+        handler.init(new 
RALBackendHandler.HandlerParameter<>(getSQLStatement(trafficRuleSegment1, 
trafficRuleSegment2), null));
+        handler.execute();
     }
     
     private Collection<RuleConfiguration> createTrafficRule() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandlerTest.java
index bdd0f9d6608..c645a6b0f20 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandlerTest.java
@@ -51,7 +51,10 @@ public final class CreateTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("input_rule_name", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("invalid", new Properties()), new 
AlgorithmSegment("invalid", new Properties()));
-        new CreateTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null)).execute();
+        CreateTrafficRuleHandler handler = new CreateTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null));
+        handler.execute();
+        
     }
     
     @Test(expected = InvalidAlgorithmConfigurationException.class)
@@ -61,7 +64,9 @@ public final class CreateTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("input_rule_name", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("invalid", new Properties()), new 
AlgorithmSegment("invalid", new Properties()));
-        new CreateTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null)).execute();
+        CreateTrafficRuleHandler handler = new CreateTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null));
+        handler.execute();
     }
     
     @Test(expected = DuplicateRuleException.class)
@@ -71,7 +76,9 @@ public final class CreateTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ProxyContext.init(contextManager);
         TrafficRuleSegment trafficRuleSegment = new 
TrafficRuleSegment("rule_name_1", Arrays.asList("olap", "order_by"),
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), new 
AlgorithmSegment("DISTSQL.FIXTURE", new Properties()));
-        new CreateTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null)).execute();
+        CreateTrafficRuleHandler handler = new CreateTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Collections.singletonList(trafficRuleSegment)), 
null));
+        handler.execute();
     }
     
     @Test
@@ -83,7 +90,9 @@ public final class CreateTrafficRuleHandlerTest extends 
ProxyContextRestorer {
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), new 
AlgorithmSegment("DISTSQL.FIXTURE", new Properties()));
         TrafficRuleSegment trafficRuleSegment2 = new 
TrafficRuleSegment("rule_name_4", Collections.emptyList(),
                 new AlgorithmSegment("DISTSQL.FIXTURE", new Properties()), 
null);
-        new CreateTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Arrays.asList(trafficRuleSegment1, 
trafficRuleSegment2)), null)).execute();
+        CreateTrafficRuleHandler handler = new CreateTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
CreateTrafficRuleStatement(Arrays.asList(trafficRuleSegment1, 
trafficRuleSegment2)), null));
+        handler.execute();
     }
     
     private RuleConfiguration createTrafficRuleConfiguration() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandlerTest.java
index d30e70d61fa..8f02227f48d 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandlerTest.java
@@ -53,7 +53,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findRuleConfigurations(any())).thenReturn(new
 LinkedList<>());
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), false), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), false), null));
+        handler.execute();
     }
     
     @Test
@@ -61,7 +63,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findRuleConfigurations(any())).thenReturn(new
 LinkedList<>());
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), true), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), true), null));
+        handler.execute();
     }
     
     @Test(expected = RequiredRuleMissedException.class)
@@ -69,7 +73,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findRuleConfigurations(any())).thenReturn(Collections.singleton(createTrafficRuleConfiguration()));
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), false), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name"), false), null));
+        handler.execute();
     }
     
     @Test
@@ -77,7 +83,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(any())).thenReturn(Optional.of(createTrafficRuleConfiguration()));
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_1"), false), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_1"), false), 
null));
+        handler.execute();
         Optional<TrafficRuleConfiguration> ruleConfig = 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(TrafficRuleConfiguration.class);
         assertTrue(ruleConfig.isPresent());
         assertThat(ruleConfig.get().getTrafficStrategies().size(), is(1));
@@ -93,7 +101,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(any())).thenReturn(Optional.of(createTrafficRuleConfiguration()));
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_1"), false), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_1"), false), 
null));
+        handler.execute();
         Optional<TrafficRuleConfiguration> ruleConfig = 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(TrafficRuleConfiguration.class);
         assertTrue(ruleConfig.isPresent());
         assertThat(ruleConfig.get().getTrafficStrategies().size(), is(1));
@@ -109,7 +119,9 @@ public final class DropTrafficRuleHandlerTest extends 
ProxyContextRestorer {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(any())).thenReturn(Optional.of(createTrafficRuleConfiguration()));
         ProxyContext.init(contextManager);
-        new DropTrafficRuleHandler().init(new 
RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_3"), true), 
null)).execute();
+        DropTrafficRuleHandler handler = new DropTrafficRuleHandler();
+        handler.init(new RALBackendHandler.HandlerParameter<>(new 
DropTrafficRuleStatement(Collections.singletonList("rule_name_3"), true), 
null));
+        handler.execute();
         Optional<TrafficRuleConfiguration> ruleConfig = 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(TrafficRuleConfiguration.class);
         assertTrue(ruleConfig.isPresent());
         assertThat(ruleConfig.get().getTrafficStrategies().size(), is(2));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
index 015cd45cc3c..e7b3c34da9a 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
@@ -129,7 +129,8 @@ public final class ImportDatabaseConfigurationHandlerTest 
extends ProxyContextRe
     }
     
     private void init(final String feature) throws Exception {
-        importDatabaseConfigurationHandler = new 
ImportDatabaseConfigurationHandler().init(getParameter(featureMap.get(feature), 
mock(ConnectionSession.class)));
+        ImportDatabaseConfigurationHandler handler = 
importDatabaseConfigurationHandler = new ImportDatabaseConfigurationHandler();
+        handler.init(getParameter(featureMap.get(feature), 
mock(ConnectionSession.class)));
         Field validatorField = 
importDatabaseConfigurationHandler.getClass().getDeclaredField("validator");
         validatorField.setAccessible(true);
         validatorField.set(importDatabaseConfigurationHandler, validator);
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java
index cde1a405b30..d4ba71f80d3 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java
@@ -95,7 +95,9 @@ public final class SetVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test
     public void assertSwitchTransactionTypeXA() throws SQLException {
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new SetVariableStatement("transaction_type", "XA"), 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement("transaction_type", "XA"), connectionSession));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(connectionSession.getTransactionStatus().getTransactionType(), 
is(TransactionType.XA));
     }
@@ -103,7 +105,9 @@ public final class SetVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test
     public void assertSwitchTransactionTypeBASE() throws SQLException {
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new SetVariableStatement("transaction_type", "BASE"), 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement("transaction_type", "BASE"), connectionSession));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(connectionSession.getTransactionStatus().getTransactionType(), 
is(TransactionType.BASE));
     }
@@ -111,42 +115,54 @@ public final class SetVariableBackendHandlerTest extends 
ProxyContextRestorer {
     @Test
     public void assertSwitchTransactionTypeLOCAL() throws SQLException {
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new SetVariableStatement("transaction_type", "LOCAL"), 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement("transaction_type", "LOCAL"), connectionSession));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(connectionSession.getTransactionStatus().getTransactionType(), 
is(TransactionType.LOCAL));
     }
     
     @Test(expected = UnsupportedVariableException.class)
     public void assertSwitchTransactionTypeFailed() throws SQLException {
+        SetVariableHandler handler = new SetVariableHandler();
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        new SetVariableHandler().init(new HandlerParameter<>(new 
SetVariableStatement("transaction_type", "XXX"), connectionSession)).execute();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement("transaction_type", "XXX"), connectionSession));
+        handler.execute();
     }
     
     @Test(expected = UnsupportedVariableException.class)
     public void assertNotSupportedVariable() throws SQLException {
-        new SetVariableHandler().init(new HandlerParameter<>(new 
SetVariableStatement("@@session", "XXX"), connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement("@@session", "XXX"), connectionSession));
+        handler.execute();
     }
     
     @Test
     public void assertSetAgentPluginsEnabledTrue() throws SQLException {
+        SetVariableHandler handler = new SetVariableHandler();
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
Boolean.TRUE.toString()), null)).execute();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
Boolean.TRUE.toString()), null));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
 Boolean.FALSE.toString()), is(Boolean.TRUE.toString()));
     }
     
     @Test
     public void assertSetAgentPluginsEnabledFalse() throws SQLException {
+        SetVariableHandler handler = new SetVariableHandler();
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
Boolean.FALSE.toString()), null)).execute();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
Boolean.FALSE.toString()), null));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
 Boolean.FALSE.toString()), is(Boolean.FALSE.toString()));
     }
     
     @Test
     public void assertSetAgentPluginsEnabledFalseWithUnknownValue() throws 
SQLException {
+        SetVariableHandler handler = new SetVariableHandler();
         connectionSession.setCurrentDatabase(String.format(DATABASE_PATTERN, 
0));
-        ResponseHeader actual = new SetVariableHandler().init(new 
HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), "xxx"), 
connectionSession)).execute();
+        handler.init(new HandlerParameter<>(new 
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), "xxx"), 
connectionSession));
+        ResponseHeader actual = handler.execute();
         assertThat(actual, instanceOf(UpdateResponseHeader.class));
         
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
 Boolean.FALSE.toString()), is(Boolean.FALSE.toString()));
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableExecutorTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableExecutorTest.java
index 0151206b52a..05641483699 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableExecutorTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableExecutorTest.java
@@ -50,14 +50,18 @@ public final class SetVariableExecutorTest extends 
ProxyContextRestorer {
     public void assertExecuteWithTransactionType() throws SQLException {
         SetVariableStatement statement = new 
SetVariableStatement("transaction_type", "local");
         when(connectionSession.getTransactionStatus()).thenReturn(new 
TransactionStatus(TransactionType.XA));
-        new SetVariableHandler().init(getParameter(statement, 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(getParameter(statement, connectionSession));
+        handler.execute();
         
assertThat(connectionSession.getTransactionStatus().getTransactionType().name(),
 is(TransactionType.LOCAL.name()));
     }
     
     @Test
     public void assertExecuteWithAgent() throws SQLException {
         SetVariableStatement statement = new 
SetVariableStatement("AGENT_PLUGINS_ENABLED", Boolean.FALSE.toString());
-        new SetVariableHandler().init(getParameter(statement, 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(getParameter(statement, connectionSession));
+        handler.execute();
         String actualValue = 
SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(), 
"default");
         assertThat(actualValue, is(Boolean.FALSE.toString()));
     }
@@ -67,7 +71,9 @@ public final class SetVariableExecutorTest extends 
ProxyContextRestorer {
         ContextManager contextManager = new ContextManager(new 
MetaDataContexts(null), null);
         ProxyContext.init(contextManager);
         SetVariableStatement statement = new 
SetVariableStatement("proxy_frontend_flush_threshold", "1024");
-        new SetVariableHandler().init(getParameter(statement, 
connectionSession)).execute();
+        SetVariableHandler handler = new SetVariableHandler();
+        handler.init(getParameter(statement, connectionSession));
+        handler.execute();
         Object actualValue = 
contextManager.getMetaDataContexts().getMetaData().getProps().getProps().get("proxy-frontend-flush-threshold");
         assertThat(actualValue.toString(), is("1024"));
         
assertThat(contextManager.getMetaDataContexts().getMetaData().getProps().getValue(ConfigurationPropertyKey.PROXY_FRONTEND_FLUSH_THRESHOLD),
 is(1024));

Reply via email to