Fix possible type pollution in ConditionEvaluationReport #32916
Closed
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.
Hi,
I've been playing around with the https://github.com/RedHatPerf/type-pollution-agent from @franz1981 and found one case in Spring-Boot that caught my eye. On a vanilla app startup the output shows the following:
On another much much bigger app of mine it's still TOP 13:
Imho, the (unlikely but) possible pollution here doesn't really matter in terms of performance and is neglectable. (At least I didn't see an improvement or regression in some measurements) What's weird about this is that
ConditionEvaluationReport.find
does aninstanceof
check onConfigurableBeanFactory
but casts toConfigurableListableBeanFactory
.We have two options here, I think:
ConfigurableBeanFactory
ConfigurableListableBeanFactory
withinstanceof
Ultimately, I chose the former for this PR , because everything that
ConditionEvaluationReport.get
internally needs seems to be satisfied withConfigurableBeanFactory
and thus seems like the more appropriate type. But since this changes a public method, we might want to go for theinstanceof
check onConfigurableListableBeanFactory
instead.Let me know what you think.
Cheers,
Christoph