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

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


The following commit(s) were added to refs/heads/master by this push:
     new 8e9b2b55428 Add SeataATTransactionSQLException (#30788)
8e9b2b55428 is described below

commit 8e9b2b554286afb821048965b46d554c2fae294c
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Apr 6 14:01:13 2024 +0800

    Add SeataATTransactionSQLException (#30788)
---
 .../content/user-manual/error-code/sql-error-code.cn.md  | 10 +++++-----
 .../content/user-manual/error-code/sql-error-code.en.md  | 10 +++++-----
 .../database/core/exception/ConnectionURLException.java  |  2 +-
 .../driver/exception/DriverConnectionException.java      |  2 +-
 .../at/SeataATShardingSphereTransactionManager.java      |  4 ++--
 ...n.java => SeataATApplicationIDNotFoundException.java} |  9 ++++-----
 .../seata/at/exception/SeataATDisabledException.java     |  5 ++---
 .../at/exception/SeataATTransactionSQLException.java}    | 16 ++++++----------
 .../xa/jta/exception/XATransactionSQLException.java      |  4 ++--
 9 files changed, 28 insertions(+), 34 deletions(-)

diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md 
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 989d0933f7e..61b8ded28f1 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -89,11 +89,11 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | 14002       | 44000     | Max length of unique resource name '%s' exceeded, 
should be less than 45.                 |
 | 14003       | 25000     | Transaction timeout should more than 0.            
                                       |
 | 14004       | 25000     | Close transaction manager failed.                  
                                       |
-| 14100       | 25000     | Failed to create '%s' XA data source.              
                                       |
-| 14101       | 25000     | Can not start new XA transaction in a active 
transaction.                                 |
-| 14102       | 25000     | Check XA transaction privileges failed on data 
source, please grant '%s' to current user. |
-| 14301       | 25000     | ShardingSphere Seata-AT transaction has been 
disabled.                                    |
-| 14302       | 25000     | Please config application id within seata.conf 
file.                                      |
+| 14200       | 25000     | Failed to create '%s' XA data source.              
                                       |
+| 14201       | 25000     | Can not start new XA transaction in a active 
transaction.                                 |
+| 14202       | 25000     | Check XA transaction privileges failed on data 
source, please grant '%s' to current user. |
+| 14400       | 44000     | No application id within 'seata.conf' file.        
                                       |
+| 14401       | 25000     | Seata-AT transaction has been disabled.            
                                       |
 
 ### 集群
 
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md 
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index 797f76eb9d6..cde9edbe585 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -90,11 +90,11 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | 14002       | 44000     | Max length of unique resource name '%s' exceeded, 
should be less than 45.                 |
 | 14003       | 25000     | Transaction timeout should more than 0.            
                                       |
 | 14004       | 25000     | Close transaction manager failed.                  
                                       |
-| 14100       | 25000     | Failed to create '%s' XA data source.              
                                       |
-| 14101       | 25000     | Can not start new XA transaction in a active 
transaction.                                 |
-| 14102       | 25000     | Check XA transaction privileges failed on data 
source, please grant '%s' to current user. |
-| 14301       | 25000     | ShardingSphere Seata-AT transaction has been 
disabled.                                    |
-| 14302       | 25000     | Please config application id within seata.conf 
file.                                      |
+| 14200       | 25000     | Failed to create '%s' XA data source.              
                                       |
+| 14201       | 25000     | Can not start new XA transaction in a active 
transaction.                                 |
+| 14202       | 25000     | Check XA transaction privileges failed on data 
source, please grant '%s' to current user. |
+| 14400       | 44000     | No application id within 'seata.conf' file.        
                                       |
+| 14401       | 25000     | Seata-AT transaction has been disabled.            
                                       |
 
 ### Cluster
 
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
index 49a64e4f6a7..85485263efe 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
 /**
  * Connection URL exception.
  */
-public class ConnectionURLException extends ConnectionSQLException {
+public abstract class ConnectionURLException extends ConnectionSQLException {
     
     private static final long serialVersionUID = 6410735261100319966L;
     
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
index a8d0910f8c0..c09d81e8762 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
 /**
  * Driver connection exception.
  */
-public class DriverConnectionException extends ConnectionSQLException {
+public abstract class DriverConnectionException extends ConnectionSQLException 
{
     
     private static final long serialVersionUID = -4543547821709772632L;
     
diff --git 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
index de7592f46e9..3035d6ea4e7 100644
--- 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
+++ 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
@@ -31,7 +31,7 @@ import lombok.SneakyThrows;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.transaction.api.TransactionType;
-import 
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATConfigurationException;
+import 
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATApplicationIDNotFoundException;
 import 
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATDisabledException;
 import 
org.apache.shardingsphere.transaction.exception.TransactionTimeoutException;
 import 
org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
@@ -74,7 +74,7 @@ public final class SeataATShardingSphereTransactionManager 
implements ShardingSp
     }
     
     private void initSeataRPCClient() {
-        ShardingSpherePreconditions.checkNotNull(applicationId, () -> new 
SeataATConfigurationException("Please config application id within seata.conf 
file"));
+        ShardingSpherePreconditions.checkNotNull(applicationId, 
SeataATApplicationIDNotFoundException::new);
         TMClient.init(applicationId, transactionServiceGroup);
         RMClient.init(applicationId, transactionServiceGroup);
     }
diff --git 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
similarity index 73%
rename from 
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
rename to 
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
index b0e867b3f92..d592135f961 100644
--- 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
+++ 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
@@ -18,16 +18,15 @@
 package org.apache.shardingsphere.transaction.base.seata.at.exception;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
 
 /**
- * Seata AT configuration exception.
+ * Seata AT application ID not found exception.
  */
-public final class SeataATConfigurationException extends 
TransactionSQLException {
+public final class SeataATApplicationIDNotFoundException extends 
SeataATTransactionSQLException {
     
     private static final long serialVersionUID = 3742525073470768226L;
     
-    public SeataATConfigurationException(final String errorMessage) {
-        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 302, errorMessage);
+    public SeataATApplicationIDNotFoundException() {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "No application id 
within 'seata.conf' file.");
     }
 }
diff --git 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
index e58b6e892ec..0ff5e6c8100 100644
--- 
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
+++ 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
@@ -18,16 +18,15 @@
 package org.apache.shardingsphere.transaction.base.seata.at.exception;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
 
 /**
  * Seata AT disabled exception.
  */
-public final class SeataATDisabledException extends TransactionSQLException {
+public final class SeataATDisabledException extends 
SeataATTransactionSQLException {
     
     private static final long serialVersionUID = 3742525073470768226L;
     
     public SeataATDisabledException() {
-        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 301, "ShardingSphere 
Seata-AT transaction has been disabled");
+        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1, "Seata-AT 
transaction has been disabled.");
     }
 }
diff --git 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
similarity index 70%
copy from 
kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
copy to 
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
index 3533c35e264..cb81a501ad9 100644
--- 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
+++ 
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
@@ -15,31 +15,27 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.transaction.xa.jta.exception;
+package org.apache.shardingsphere.transaction.base.seata.at.exception;
 
 import com.google.common.base.Preconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
 
 /**
- * XA transaction SQL exception.
+ * Seata AT transaction SQL exception.
  */
-public class XATransactionSQLException extends TransactionSQLException {
+public abstract class SeataATTransactionSQLException extends 
TransactionSQLException {
     
     private static final long serialVersionUID = 7649367025303908263L;
     
-    private static final int XA_CODE = 1;
+    private static final int SEATA_CODE = 4;
     
-    protected XATransactionSQLException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
+    protected SeataATTransactionSQLException(final SQLState sqlState, final 
int errorCode, final String reason, final Object... messageArgs) {
         super(sqlState, getErrorCode(errorCode), reason, messageArgs);
     }
     
-    protected XATransactionSQLException(final SQLState sqlState, final int 
errorCode, final String reason, final Exception cause) {
-        super(sqlState, getErrorCode(errorCode), reason, cause);
-    }
-    
     private static int getErrorCode(final int errorCode) {
         Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 100).");
-        return XA_CODE * 100 + errorCode;
+        return SEATA_CODE * 100 + errorCode;
     }
 }
diff --git 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
index 3533c35e264..ee2c4d9653c 100644
--- 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
+++ 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
@@ -24,11 +24,11 @@ import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
 /**
  * XA transaction SQL exception.
  */
-public class XATransactionSQLException extends TransactionSQLException {
+public abstract class XATransactionSQLException extends 
TransactionSQLException {
     
     private static final long serialVersionUID = 7649367025303908263L;
     
-    private static final int XA_CODE = 1;
+    private static final int XA_CODE = 2;
     
     protected XATransactionSQLException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
         super(sqlState, getErrorCode(errorCode), reason, messageArgs);

Reply via email to