mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 08:24:13 +00:00
Prior to this commit, the SpelParserConfiguration constructors that omit an explicit maximumAutoGrowSize left collection auto-growing effectively unbounded, defaulting to Integer.MAX_VALUE. That default was inconsistent with the auto-grow limit applied elsewhere in the framework for data binding (see DataBinder.DEFAULT_AUTO_GROW_COLLECTION_LIMIT). To address that, this commit introduces a new SpelParserConfiguration.DEFAULT_MAX_AUTO_GROW_SIZE constant (set to 256 to match DataBinder.DEFAULT_AUTO_GROW_COLLECTION_LIMIT) and switches the constructors that previously hard-coded Integer.MAX_VALUE to use this new default instead. Constructors that accept an explicit maximumAutoGrowSize are unaffected. In addition, SpelParserConfiguration now enforces that a user-supplied maximumAutoGrowSize is not a negative value, consistent with the preconditions already enforced for maximumExpressionLength, maximumOperations, maximumBigPowerBits, and maximumNestingDepth. A value of 0 remains supported (effectively disabling collection auto-growing) and is now documented as such in the Javadoc. The Spring Framework reference documentation has also been updated to describe the new default, and tests have been added to IndexingTests to verify the default, the ability to override it, and the new precondition. Closes gh-36995