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

chengzhang 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 7b62e9bb40d Add getReadWriteSplitReplicaRoute and return optional in 
TransactionConnectionContext (#31020)
7b62e9bb40d is described below

commit 7b62e9bb40d679fbd7e1fc1c1cf782574c3c77eb
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Fri Apr 26 11:03:48 2024 +0800

    Add getReadWriteSplitReplicaRoute and return optional in 
TransactionConnectionContext (#31020)
---
 ...QualifiedReadwriteSplittingTransactionalDataSourceRouter.java | 4 ++--
 .../connection/transaction/TransactionConnectionContext.java     | 9 +++++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
index 6f6e820242d..aba0644ed1a 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/qualified/type/QualifiedReadwriteSplittingTransactionalDataSourceRouter.java
@@ -44,10 +44,10 @@ public final class 
QualifiedReadwriteSplittingTransactionalDataSourceRouter impl
     public String route(final ReadwriteSplittingDataSourceGroupRule rule) {
         switch (rule.getTransactionalReadQueryStrategy()) {
             case FIXED:
-                if (null == 
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute()) {
+                if 
(!connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute().isPresent())
 {
                     
connectionContext.getTransactionContext().setReadWriteSplitReplicaRoute(standardRouter.route(rule));
                 }
-                return 
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute();
+                return 
connectionContext.getTransactionContext().getReadWriteSplitReplicaRoute().get();
             case DYNAMIC:
                 return standardRouter.route(rule);
             case PRIMARY:
diff --git 
a/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
 
b/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
index fff981a289b..1b62261baf7 100644
--- 
a/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
+++ 
b/infra/session/src/main/java/org/apache/shardingsphere/infra/session/connection/transaction/TransactionConnectionContext.java
@@ -69,6 +69,15 @@ public final class TransactionConnectionContext implements 
AutoCloseable {
         return Optional.ofNullable(transactionType);
     }
     
+    /**
+     * Get read write split replica route. 
+     *
+     * @return read write split replica route
+     */
+    public Optional<String> getReadWriteSplitReplicaRoute() {
+        return Optional.ofNullable(readWriteSplitReplicaRoute);
+    }
+    
     @Override
     public void close() {
         transactionType = null;

Reply via email to