WW-4062 Further optimisation of OgnlException caching #1021
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WW-4062
Follow-up for #1013 - I was looking at the flame graph for this particular code flow (this is before the previous PR was merged) and observed that filling the stack trace is the largest contributor. Thus, we can gain more performance here by not refreshing the stack trace for cached exceptions. Given most of these exceptions are caught silently I don't expect the lack of stack trace to be an issue. If the stack trace is necessary for debugging purposes, then we can temporarily disable caching using
struts.ognl.enableExpressionCache=false
.As the Jira issue suggests - this is primarily an issue for applications using the Velocity integration where the
null
fallback behaviour results in these invalid OGNL expressions attempting to be compiled repeatedly.