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);
}