SpEL内存使用混合模式泄漏

时间:2017-04-02 14:14:55

标签: spring-el

在混合模式下运行时,我遇到使用spring表达式语言的问题。

在标准解释模式中,一切似乎都正常。如果你有一个表达式说“a?.b?.c”,那么如果在对象链b上为null,则返回null,如我所料。

在混合模式下运行时会出现问题,并在100次调用后进行编译。在这种情况下,当你解析一个b为null的对象时,似乎在spring代码中抛出了一个空指针并通过重置来处理 - 但这似乎将原始编译的类留在内存中。

如果您运行的测试反复调用此例程,则最终会耗尽Perm Gen空间。

在编译表达式中使用时,似乎没有包含诸如“a?.b?.c”之类的空安全检查。

以前有人见过这个,有关于潜在解决方案/解决方法的想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这听起来像个臭虫;我建议您针对Core:SpEL组件打开JIRA issue

如果您附上测试用例会很有帮助。