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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5596a1fb3c [type: bug] Fix thread safety issue with shared static 
CONTEXT in ExpressionGenerator (#6880) (#6995)
5596a1fb3c is described below

commit 5596a1fb3ce954eada6c608c4e8a0e5d88514fe5
Author: Arvin <[email protected]>
AuthorDate: Thu Sep 3 16:59:30 2026 +0800

    [type: bug] Fix thread safety issue with shared static CONTEXT in 
ExpressionGenerator (#6880) (#6995)
    
    Signed-off-by: zhang-arvin <[email protected]>
    Co-authored-by: aias00 <[email protected]>
---
 .../apache/shenyu/plugin/mock/generator/ExpressionGenerator.java   | 7 +++----
 .../shenyu/plugin/mock/generator/StandardExpressionGenerator.java  | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git 
a/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/ExpressionGenerator.java
 
b/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/ExpressionGenerator.java
index 89b4f2a9e8..6c60348dcf 100644
--- 
a/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/ExpressionGenerator.java
+++ 
b/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/ExpressionGenerator.java
@@ -41,8 +41,6 @@ public class ExpressionGenerator implements Generator<String> 
{
     
     private static final ExpressionParser PARSER = new SpelExpressionParser();
     
-    private static final EvaluationContext CONTEXT = initContext();
-    
     @Override
     public String getName() {
         return "expression";
@@ -53,9 +51,10 @@ public class ExpressionGenerator implements 
Generator<String> {
         
         String expression = params.get(0);
         
-        CONTEXT.setVariable("req", mockRequest);
+        EvaluationContext context = initContext();
+        context.setVariable("req", mockRequest);
         
-        Object val = PARSER.parseExpression(expression).getValue(CONTEXT);
+        Object val = PARSER.parseExpression(expression).getValue(context);
         return JsonUtils.toJson(val);
     }
     
diff --git 
a/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/StandardExpressionGenerator.java
 
b/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/StandardExpressionGenerator.java
index 0d44137303..16ba2f04a6 100644
--- 
a/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/StandardExpressionGenerator.java
+++ 
b/shenyu-plugin/shenyu-plugin-mock/src/main/java/org/apache/shenyu/plugin/mock/generator/StandardExpressionGenerator.java
@@ -40,8 +40,6 @@ public class StandardExpressionGenerator implements 
Generator<String> {
     
     private static final ExpressionParser PARSER = new SpelExpressionParser();
     
-    private static final EvaluationContext CONTEXT = initContext();
-    
     @Override
     public String getName() {
         return "standardSPELExpression";
@@ -52,9 +50,10 @@ public class StandardExpressionGenerator implements 
Generator<String> {
         
         String expression = params.get(0);
         
-        CONTEXT.setVariable("req", mockRequest);
+        EvaluationContext context = initContext();
+        context.setVariable("req", mockRequest);
         
-        Object val = PARSER.parseExpression(expression).getValue(CONTEXT);
+        Object val = PARSER.parseExpression(expression).getValue(context);
         return JsonUtils.toJson(val);
     }
     

Reply via email to