提交 cffad9d4 编写于 作者: S Sebastien Deleuze

Limit the number of ScriptEngine instances to the number of threads

This commit makes ThreadLocal<ScriptEngine> engineHolder ScriptTemplateView
field static in order to limit the maximum number of ScriptEngine instances
to the number of threads, regardless of the number of view instances.

Issue: SPR-13487
上级 54703bf3
......@@ -69,8 +69,9 @@ public class ScriptTemplateView extends AbstractUrlBasedView {
private static final String DEFAULT_RESOURCE_LOADER_PATH = "classpath:";
private static final ThreadLocal<ScriptEngine> engineHolder =
new NamedThreadLocal<ScriptEngine>("ScriptTemplateView engine");
private final ThreadLocal<ScriptEngine> engineHolder = new NamedThreadLocal<ScriptEngine>("ScriptTemplateView engine");
private ScriptEngine engine;
......@@ -235,10 +236,10 @@ public class ScriptTemplateView extends AbstractUrlBasedView {
protected ScriptEngine getEngine() {
if (Boolean.FALSE.equals(this.sharedEngine)) {
ScriptEngine engine = this.engineHolder.get();
ScriptEngine engine = engineHolder.get();
if (engine == null) {
engine = createEngineFromName();
this.engineHolder.set(engine);
engineHolder.set(engine);
}
return engine;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册