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

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 91bcb49bf3d Refactor ShardingSphereSQLException (#30769)
91bcb49bf3d is described below

commit 91bcb49bf3d8e6bba187637785dc21638694391d
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Apr 4 17:43:17 2024 +0800

    Refactor ShardingSphereSQLException (#30769)
    
    * Refactor ShardingSphereSQLException
    
    * Refactor ShardingSphereSQLException
---
 .../storageunit/AlterStorageUnitConnectionInfoException.java   |  2 +-
 .../resource/storageunit/DuplicateStorageUnitException.java    |  2 +-
 .../resource/storageunit/InUsedStorageUnitException.java       |  2 +-
 .../resource/storageunit/StorageUnitsOperateException.java     |  2 +-
 .../exception/UnsupportedActualDataNodeStructureException.java |  2 +-
 .../core/external/sql/ShardingSphereSQLException.java          | 10 +++++++++-
 .../external/sql/type/kernel/category/ClusterSQLException.java |  2 +-
 7 files changed, 15 insertions(+), 7 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/AlterStorageUnitConnectionInfoException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/AlterStorageUnitConnectionInfoException.java
index fff77dd79bb..bb0daee86f7 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/AlterStorageUnitConnectionInfoException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/AlterStorageUnitConnectionInfoException.java
@@ -30,6 +30,6 @@ public final class AlterStorageUnitConnectionInfoException 
extends ResourceDefin
     private static final long serialVersionUID = 525999625052706626L;
     
     public AlterStorageUnitConnectionInfoException(final Collection<String> 
storageUnitNames) {
-        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 11, "Can not alter 
connection info in storage units: '%s'.", String.join(", ", storageUnitNames));
+        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 11, "Can not alter 
connection info in storage units: '%s'.", storageUnitNames);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/DuplicateStorageUnitException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/DuplicateStorageUnitException.java
index 04c890ab0f0..380ff58241a 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/DuplicateStorageUnitException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/DuplicateStorageUnitException.java
@@ -30,6 +30,6 @@ public final class DuplicateStorageUnitException extends 
ResourceDefinitionExcep
     private static final long serialVersionUID = 2103793827572264148L;
     
     public DuplicateStorageUnitException(final String databaseName, final 
Collection<String> storageUnitNames) {
-        super(XOpenSQLState.DUPLICATE, 4, "Duplicate storage unit names '%s' 
on database '%s'.", String.join(", ", storageUnitNames), databaseName);
+        super(XOpenSQLState.DUPLICATE, 4, "Duplicate storage unit names '%s' 
on database '%s'.", storageUnitNames, databaseName);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/InUsedStorageUnitException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/InUsedStorageUnitException.java
index b82374cface..ae05ae4d9c8 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/InUsedStorageUnitException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/InUsedStorageUnitException.java
@@ -32,6 +32,6 @@ public final class InUsedStorageUnitException extends 
ResourceDefinitionExceptio
     private static final long serialVersionUID = -3427324685070457375L;
     
     public InUsedStorageUnitException(final String storageUnitName, final 
Collection<Class<? extends ShardingSphereRule>> ruleClasses) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3, "Storage unit '%s' 
still used by '%s'.", storageUnitName, 
ruleClasses.stream().map(Class::getSimpleName).collect(Collectors.joining(", 
")));
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3, "Storage unit '%s' 
still used by '%s'.", storageUnitName, 
ruleClasses.stream().map(Class::getSimpleName).collect(Collectors.toList()));
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/StorageUnitsOperateException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/StorageUnitsOperateException.java
index 0efaba8823c..8b79d999e25 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/StorageUnitsOperateException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/metadata/resource/storageunit/StorageUnitsOperateException.java
@@ -30,6 +30,6 @@ public final class StorageUnitsOperateException extends 
ResourceDefinitionExcept
     private static final long serialVersionUID = 7029641448948791509L;
     
     public StorageUnitsOperateException(final String operationType, final 
Collection<String> storageUnitNames, final Exception cause) {
-        super(XOpenSQLState.GENERAL_ERROR, 0, String.format("Can not %s 
storage units '%s'.", operationType, String.join(", ", storageUnitNames)), 
cause);
+        super(XOpenSQLState.GENERAL_ERROR, 0, String.format("Can not %s 
storage units '%s'.", operationType, storageUnitNames), cause);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
index 5f9e361c435..a439e1147ca 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
@@ -31,6 +31,6 @@ public final class 
UnsupportedActualDataNodeStructureException extends MetaDataS
     private static final long serialVersionUID = -8921823916974492519L;
     
     public UnsupportedActualDataNodeStructureException(final DataNode 
dataNode, final Collection<String> jdbcUrlPrefixes) {
-        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 0, "Can not support 3-tier 
structure for actual data node '%s' with JDBC '%s'.", dataNode.format(), 
jdbcUrlPrefixes.toString());
+        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 0, "Can not support 3-tier 
structure for actual data node '%s' with JDBC '%s'.", dataNode.format(), 
jdbcUrlPrefixes);
     }
 }
diff --git 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/ShardingSphereSQLException.java
 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/ShardingSphereSQLException.java
index 51a47445c56..7eb06f71d4a 100644
--- 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/ShardingSphereSQLException.java
+++ 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/ShardingSphereSQLException.java
@@ -23,6 +23,9 @@ import 
org.apache.shardingsphere.infra.exception.core.external.ShardingSphereExt
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
 
 import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.stream.Collectors;
 
 /**
  * ShardingSphere SQL exception.
@@ -44,7 +47,7 @@ public abstract class ShardingSphereSQLException extends 
ShardingSphereExternalE
     }
     
     protected ShardingSphereSQLException(final String sqlState, final int 
typeOffset, final int errorCode, final String reason, final Object... 
messageArgs) {
-        this(sqlState, typeOffset, errorCode, null == reason ? null : 
String.format(reason, messageArgs), (Exception) null);
+        this(sqlState, typeOffset, errorCode, null == reason ? null : 
String.format(reason, formatMessageArguments(messageArgs)), (Exception) null);
     }
     
     protected ShardingSphereSQLException(final String sqlState, final int 
typeOffset, final int errorCode, final String reason, final Exception cause) {
@@ -59,6 +62,11 @@ public abstract class ShardingSphereSQLException extends 
ShardingSphereExternalE
         this.cause = cause;
     }
     
+    private static Object[] formatMessageArguments(final Object... 
messageArgs) {
+        return Arrays.stream(messageArgs)
+                .map(each -> each instanceof Collection ? ((Collection<?>) 
each).stream().map(Object::toString).collect(Collectors.joining(", ")) : 
each).toArray(Object[]::new);
+    }
+    
     /**
      * To SQL exception.
      * 
diff --git 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ClusterSQLException.java
 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ClusterSQLException.java
index ee7def5351c..8546f63f58e 100644
--- 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ClusterSQLException.java
+++ 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ClusterSQLException.java
@@ -27,7 +27,7 @@ public abstract class ClusterSQLException extends 
KernelSQLException {
     
     private static final long serialVersionUID = -2839102961922546497L;
     
-    private static final int KERNEL_CODE = 7;
+    private static final int KERNEL_CODE = 5;
     
     protected ClusterSQLException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
         super(sqlState, KERNEL_CODE, errorCode, reason, messageArgs);

Reply via email to