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 ee46614dcea Add advice message in 
XATransactionCheckPrivilegeFailedException (#30203)
ee46614dcea is described below

commit ee46614dcea23beeb8f563eb726180b1f724261e
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Feb 20 14:47:30 2024 +0800

    Add advice message in XATransactionCheckPrivilegeFailedException (#30203)
---
 .../checker/dialect/MySQLXATransactionPrivilegeChecker.java         | 2 +-
 .../jta/exception/XATransactionCheckPrivilegeFailedException.java   | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/checker/dialect/MySQLXATransactionPrivilegeChecker.java
 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/checker/dialect/MySQLXATransactionPrivilegeChecker.java
index a7f04e19d35..38f8f8f6972 100644
--- 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/checker/dialect/MySQLXATransactionPrivilegeChecker.java
+++ 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/checker/dialect/MySQLXATransactionPrivilegeChecker.java
@@ -61,7 +61,7 @@ public final class MySQLXATransactionPrivilegeChecker 
implements XATransactionPr
                 }
             }
         } catch (final SQLException ex) {
-            throw new XATransactionCheckPrivilegeFailedException(ex);
+            throw new XATransactionCheckPrivilegeFailedException(ex, "GRANT 
XA_RECOVER_ADMIN TO currentUser");
         }
         throw new XATransactionPrivilegeException("XA_RECOVER_ADMIN");
     }
diff --git 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionCheckPrivilegeFailedException.java
 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionCheckPrivilegeFailedException.java
index 103f8bee2ba..b9ca5372f72 100644
--- 
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionCheckPrivilegeFailedException.java
+++ 
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionCheckPrivilegeFailedException.java
@@ -30,6 +30,10 @@ public final class 
XATransactionCheckPrivilegeFailedException extends Transactio
     private static final long serialVersionUID = 6073175429050058508L;
     
     public XATransactionCheckPrivilegeFailedException(final SQLException 
cause) {
-        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 203, 
String.format("Check privileges failed on data source, reason is: %s", 
cause.getMessage()), cause);
+        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 203, 
String.format("Check xa transaction privileges failed on data source, reason 
is: `%s`", cause.getMessage()), cause);
+    }
+    
+    public XATransactionCheckPrivilegeFailedException(final SQLException 
cause, final String advice) {
+        super(XOpenSQLState.INVALID_TRANSACTION_STATE, 203, 
String.format("Check xa transaction privileges failed on data source, reason 
is: `%s`, please `%s`", cause.getMessage(), advice), cause);
     }
 }

Reply via email to