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 474c0f3bb01 Minor refactor in GeneratedKeyContextEngine to avoid 
IndexOutOfBoundException (#32936)
474c0f3bb01 is described below

commit 474c0f3bb01db88368f98a037c4809534779f726
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Fri Sep 20 17:16:48 2024 +0800

    Minor refactor in GeneratedKeyContextEngine to avoid 
IndexOutOfBoundException (#32936)
    
    * Minor refactor in GeneratedKeyContextEngine to avoid 
IndexOutOfBoundException
    
    * fix unit test
---
 .../segment/insert/keygen/engine/GeneratedKeyContextEngine.java        | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngine.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngine.java
index 5f71f14f766..0bb6f85e5de 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngine.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngine.java
@@ -98,7 +98,8 @@ public final class GeneratedKeyContextEngine {
                 if (params.isEmpty()) {
                     continue;
                 }
-                if (null != params.get(((ParameterMarkerExpressionSegment) 
expression).getParameterMarkerIndex())) {
+                if (params.size() > ((ParameterMarkerExpressionSegment) 
expression).getParameterMarkerIndex()
+                        && null != 
params.get(((ParameterMarkerExpressionSegment) 
expression).getParameterMarkerIndex())) {
                     result.getGeneratedValues().add((Comparable<?>) 
params.get(((ParameterMarkerExpressionSegment) 
expression).getParameterMarkerIndex()));
                 }
             } else if (expression instanceof LiteralExpressionSegment) {

Reply via email to