GenericTypeResolver defensively calls Class.getGenericSuperclass() and consistently uses Class<?>

Issue: SPR-10559
(cherry picked from commit 25e29b8)
Detect a FactoryBean type match even if predictBeanType returned a non-FactoryBean type

This change should be the final piece in the puzzle to let SmartInstantiationAwareBeanPostProcessor's predictBeanType predict a FactoryBean-produced type, effectively as a semantic alternative to its postProcessBeforeInstantiation-related role.

Issue: SPR-10517
(cherry picked from commit bc3e585)
Consistent use of Class<?> in core container method signatures
(cherry picked from commit 1461744)
Updated changelog for 3.2.3 release
Fix deadlock issue in DeferredResult

Previously DeferredResult locked around the setting of the result
including handling up to the part of submitting a dispatch. This
can cause a deadlock if a timeout occurs at the same time since
the Tomcat timeout thread has its own locking that permits only
one thread to do timeout or dispatch processing.

The fix reduces the locking to cover only the attempt to set the
DeferredResult but not the dispatching.

Issue: SPR-10485
Reinstate removal of semicolon content

Commit 5b1165 was an attempt to leave semicolon content in the URL path
while ignoring it for request mapping purposes. However, it becomes
quite difficult to manage and semicolon content should not always be
ignored (sometimes a semicolon is used as a separator of multiple items
in a path segment, rather than for matrix variables).

This change effectively reverts back to the original approach in 3.2
where a flag on AbstractHandlerMapping can be used to have semicolon
content removed or kept. If kept, path segments with matrix variables
must be represented with a path segment.

The main difference is that by default it is removed everywhere
including the MVC namespace and Java config.

Issue: SPR-10427, SPR-10234
Make removal of jsessionid case insensitive

Issue: SPR-10398
Ensure Parent ConfigurationClass loaded on overrides

Previously ConfigurationClassParser could override a nested
@Configuration without consideration of @Bean's defined in parent
classes.

This commit ensures that if the original ConfigurationClass contains
additional bean definitions it is processed again.

Issue: SPR-10546
Clarified that CronTrigger never schedules overlapping executions

Issue: SPR-10556
(cherry picked from commit 5dbbd8f)
Polishing
Properly handle knownSuperclasses in case of an overridden ConfigurationClass

Issue: SPR-10546
Fixed type detection to avoid reuse of parent bean's targetType on child definition merge

Issue: SPR-10374
(cherry picked from commit 070103b)
Polishing
Further changelog entries for 3.2.3
Avoid unnecessary creation of default StandardEnvironment instances

Issue: SPR-10568
(cherry picked from commit 7e01578)
Introduced "jsonPrefix" bean property

This change involves a modification of the "writeContent" template method to include the "jsonPrefix" String instead of the "prefixJson" boolean flag. Since said template method has only been introduced in 3.2.2, this change should hopefully not be a problem.

Issue: SPR-10567
(cherry picked from commit 28164b4)
Final changelog entries for 3.2.3
Replaced Map synchronization with ConcurrentHashMap to avoid session access deadlocks

Issue: SPR-10436
(cherry picked from commit cd3d0c3)
Fixed BeanPropertyRowMapper to only prefix actual upper-case letters with underscores

Issue: SPR-10547
(cherry picked from commit c8b071c)
Final preparations for 3.2.3 release