Sam Brannen
958dab7c84
Merge branch '6.2.x'
2025-05-11 13:53:40 +02:00
Sam Brannen
ebb44a8368
Restore support for non-EnumerablePropertySource in PropertySourcesPlaceholderConfigurer
...
Commit 3295289e17
fixed a number issues with placeholder resolution in
PropertySourcesPlaceholderConfigurer. However, in doing so, it replaced
a raw PropertySource with a CompositePropertySource which implements
EnumerablePropertySource.
Consequently, all property sources registered in the Environment must
now implement EnumerablePropertySource (which is not an actual
requirement). Otherwise, invocations of getPropertyNames() on the
CompositePropertySource result in an IllegalStateException, and that is
a breaking change which resulted in numerous build failures within the
Spring portfolio.
To address that regression, this commit introduces a private
ConfigurableEnvironmentPropertySource in
PropertySourcesPlaceholderConfigurer which is a "raw" PropertySource
that delegates directly to the PropertySources in a
ConfigurableEnvironment.
This commit also extracts the raw PropertySource for direct Environment
delegation into a new FallbackEnvironmentPropertySource.
See gh-17385
Closes gh-34861
2025-05-11 13:46:11 +02:00
Sam Brannen
3096bb6d0c
Polishing
2025-05-11 13:24:40 +02:00
Sam Brannen
32e2c453b0
Merge branch '6.2.x'
2025-05-10 15:21:39 +02:00
Sam Brannen
3295289e17
Fix placeholder resolution in PropertySourcesPlaceholderConfigurer
...
Currently, the placeholder resolution algorithm in
PropertySourcesPlaceholderConfigurer fails in several scenarios, and
the root cause for this category of failures has actually existed since
PropertySourcesPlaceholderConfigurer was introduced in Spring Framework
3.1.
Specifically, PropertySourcesPlaceholderConfigurer creates its own
PropertySourcesPropertyResolver that indirectly delegates to another
"nested" PropertySourcesPropertyResolver to interact with
PropertySources from the Environment, which results in double
placeholder parsing and resolution attempts, and that behavior leads to
a whole category of bugs.
For example, #27947 was addressed in Spring Framework 5.3.16, and due
to #34315 and #34326 we have recently realized that additional bugs
exist with placeholder resolution: nested placeholder resolution can
fail when escape characters are used, and it is currently impossible
to disable the escape character support for nested resolution.
To address this category of bugs, we no longer indirectly use or
directly create a "nested" PropertySourcesPropertyResolver in
PropertySourcesPlaceholderConfigurer. Instead, properties from property
sources from the Environment are now accessed directly without
duplicate/nested placeholder resolution.
See gh-27947
See gh-34326
See gh-34862
Closes gh-34861
2025-05-10 15:14:50 +02:00
Sam Brannen
6c4651925e
Merge branch '6.2.x'
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-05-07 14:29:35 +02:00
Sam Brannen
b4355dc955
Polishing
2025-05-07 12:42:40 +02:00
Juergen Hoeller
d0a1ba5092
Merge branch '6.2.x'
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-04-30 17:56:36 +02:00
Juergen Hoeller
9c183f9e77
Add explicit note on redeclaring in each application context
...
Closes gh-34843
2025-04-30 17:55:18 +02:00
Juergen Hoeller
4d15c136b1
Merge branch '6.2.x'
...
# Conflicts:
# spring-context/src/test/java/org/springframework/context/aot/ContextAotProcessorTests.java
2025-04-29 11:51:24 +02:00
Juergen Hoeller
03620fc530
Polishing
Backport Bot / build (push) Has been cancelled
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
Deploy Docs / Dispatch docs deployment (push) Has been cancelled
Details
Build and Deploy Snapshot / Verify (push) Has been cancelled
Details
2025-04-29 11:47:47 +02:00
Juergen Hoeller
1c108054ee
Close ApplicationContext after AOT processing
...
Closes gh-34841
2025-04-29 11:47:09 +02:00
Sam Brannen
cdee5c5b79
Merge branch '6.2.x'
2025-04-25 12:13:37 +02:00
Sam Brannen
e384389790
Reinstate the @Inject Technology Compatibility Kit (TCK)
...
In commit 05ebca8677
, the `public` modifier was removed from the
SpringAtInjectTckTests class, which prevents it from being run as a
JUnit 3 test class.
To address that, this commit adds the missing `public` modifier as well
as a a code comment to help prevent this from happening again.
In addition, this commit updates spring-context.gradle to ensure that
the JUnit Vintage test engine is always applied. However, that Gradle
configuration is unfortunately ignored due to how our TestConventions
class has been implemented. Thus, that issue will have to be addressed
separately.
Closes gh-34800
2025-04-25 12:08:39 +02:00
Sam Brannen
0477ba4de4
Remove obsolete RmiInvocationWrapperRTD.xml file
...
Closes gh-34779
(cherry picked from commit e7402bc365
)
2025-04-22 12:10:18 +02:00
Sam Brannen
e7402bc365
Remove obsolete RmiInvocationWrapperRTD.xml file
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Has been cancelled
Details
Deploy Docs / Dispatch docs deployment (push) Has been cancelled
Details
Build and Deploy Snapshot / Verify (push) Has been cancelled
Details
Closes gh-34779
2025-04-18 16:59:37 +02:00
Sam Brannen
af461fc0a6
Merge branch '6.2.x'
2025-04-14 14:27:27 +02:00
Sam Brannen
8f62a8f579
Suppress recently introduced warning
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-04-14 14:25:48 +02:00
Sam Brannen
a22d204681
Remove duplicate words in Java source code
...
Discovered using regular expression: \b(\w+)\s+\1\b[^(}]
2025-04-14 11:24:55 +02:00
Juergen Hoeller
7bb7456686
Merge branch '6.2.x'
...
# Conflicts:
# spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java
# spring-jdbc/src/main/java/org/springframework/jdbc/core/StatementCreatorUtils.java
2025-04-10 18:37:07 +02:00
Juergen Hoeller
eea6addd26
Avoid lenient locking for additional external bootstrap threads
...
Includes spring.locking.strict revision to differentiate between true, false, not set.
Includes checkFlag accessor on SpringProperties, also used in StatementCreatorUtils.
Closes gh-34729
See gh-34303
2025-04-10 18:33:21 +02:00
Juergen Hoeller
8bc99fa662
Merge branch '6.2.x'
2025-04-07 22:42:52 +02:00
Juergen Hoeller
74ab5e4e25
Enforce circular reference exception between more than two threads as well
...
See gh-34672
2025-04-07 22:37:19 +02:00
Juergen Hoeller
4283a34fa4
Merge branch '6.2.x'
2025-04-07 17:09:36 +02:00
Juergen Hoeller
463541967a
Enforce circular reference exception between all thread variations
...
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
Closes gh-34672
2025-04-07 17:08:47 +02:00
Sam Brannen
76d335aa41
Remove default value for @ManagedOperationParameters container
2025-04-04 18:17:43 +02:00
Sam Brannen
5b4511fbf7
Merge branch '6.2.x'
2025-04-04 15:54:29 +02:00
Sam Brannen
dbd47ff4f9
Implement additional micro performance optimizations
...
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
See gh-34717
2025-04-04 15:51:37 +02:00
Juergen Hoeller
907c1db7a6
Merge branch '6.2.x'
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
# Conflicts:
# spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java
2025-04-04 00:28:50 +02:00
Juergen Hoeller
ee804ee8fb
Avoid throwing of plain RuntimeException
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-04-04 00:22:24 +02:00
Juergen Hoeller
4e5979c75a
Consistent CacheErrorHandler processing for @Cacheable(sync=true)
...
Closes gh-34708
2025-04-04 00:22:12 +02:00
Juergen Hoeller
5b1c55252e
Merge branch '6.2.x'
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-04-02 23:43:06 +02:00
Juergen Hoeller
6bb964e2d0
Explicitly use original ClassLoader in case of package visibility
...
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
Closes gh-34684
2025-04-02 23:41:43 +02:00
Juergen Hoeller
d06b47818b
Align JSpecify @Nullable annotation
2025-04-01 22:23:46 +02:00
Juergen Hoeller
5e2c16c30c
Merge branch '6.2.x'
...
# Conflicts:
# spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java
2025-04-01 22:21:56 +02:00
Juergen Hoeller
48009c8534
Introduce support for concurrent startup phases with timeouts
...
Closes gh-34634
2025-04-01 22:18:26 +02:00
Juergen Hoeller
a122dda596
Merge branch '6.2.x'
2025-03-31 16:42:29 +02:00
Juergen Hoeller
743f32675d
Only attempt load for CGLIB classes in AOT mode
...
Closes gh-34677
2025-03-31 16:39:18 +02:00
Sam Brannen
b2af1af50f
Merge branch '6.2.x'
2025-03-31 12:19:43 +02:00
Sam Brannen
044258f085
Support abstract @Configuration classes without @Bean methods again
...
Historically, @Configuration classes that did not declare @Bean
methods were allowed to be abstract. However, the changes made in
76a6b9ea79 introduced a regression that prevents such classes from
being abstract, resulting in a BeanInstantiationException. This change
in behavior is caused by the fact that such a @Configuration class is
no longer replaced by a concrete subclass created dynamically by CGLIB.
This commit restores support for abstract @Configuration classes
without @Bean methods by modifying the "no enhancement required" check
in ConfigurationClassParser.
See gh-34486
Closes gh-34663
2025-03-31 12:18:55 +02:00
Juergen Hoeller
ac7c7ff5b2
Merge branch '6.2.x'
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
# Conflicts:
# spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java
2025-03-28 20:47:57 +01:00
Juergen Hoeller
75e5a75da5
Enforce circular reference exception within non-managed thread
...
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
Closes gh-34672
2025-03-28 20:46:09 +01:00
Juergen Hoeller
3872c1a762
Merge branch '6.2.x'
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
# Conflicts:
# spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java
# spring-jms/src/main/java/org/springframework/jms/config/AbstractJmsListenerContainerFactory.java
# spring-jms/src/main/java/org/springframework/jms/listener/AbstractMessageListenerContainer.java
2025-03-25 17:13:02 +01:00
Juergen Hoeller
6905dff660
Introduce spring.locking.strict=true flag for 6.1.x style bean creation locking
...
Closes gh-34303
2025-03-25 17:08:55 +01:00
Brian Clozel
20b35f068a
Add visibility and return type to SimpleMethodMetadata toString
...
Closes gh-34649
2025-03-25 15:32:42 +01:00
Brian Clozel
b8b279d3e0
Use Java 24 to build Spring Framework
...
This commit also adapts tests for a Java 24 runtime.
Closes gh-34639
2025-03-24 09:51:19 +01:00
Sébastien Deleuze
5ce64f47b2
Add support for ImportAware in BeanRegistrar
...
Closes gh-34627
2025-03-21 11:49:15 +01:00
Sam Brannen
92ee20c896
Adhere to new Checkstyle rule
2025-03-19 16:29:03 +01:00
Sam Brannen
8db1340263
Merge branch '6.2.x'
2025-03-19 16:24:18 +01:00
Sam Brannen
208d52d852
Introduce Checkstyle rule for separator symbol location
2025-03-19 15:35:44 +01:00