Yanming Zhou
29602e95b6
Polish DefaultListableBeanFactoryTests
...
Fix that scope is not overridden and asserted.
Closes gh-36941
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-09-03 13:53:47 +02:00
Yanming Zhou
94458c05e0
Polish method parameter name
...
The parameter type is `TransactionManager` not `PlatformTransactionManager`.
Closes gh-36702
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-09-03 13:45:46 +02:00
Yanming Zhou
513ca9d9e5
Polish ScheduledAnnotationBeanPostProcessor to refine null-safety
...
Closes gh-37219
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-08-31 15:10:57 +02:00
Yanming Zhou
2588fb078e
Polish ConcurrentLruCache to refine null-safety
...
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-08-28 14:53:40 +02:00
Yanming Zhou
9726c7ed5f
Let composite/filtered collections accept null elements
...
Closes gh-36923
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-07-08 15:17:17 +02:00
Yanming Zhou
c35e17b038
Refactor NumberToDataSizeConverter to use DataSize.ofBytes(long) directly
...
Prior to this commit, a `Number` was converted to a `String` and then
the string was parsed/matched using regular expressions back into a
suitable `long` which was inefficient and also prevented valid data
size values such as 10.0.
To address those issues, this commit refactors
NumberToDataSizeConverter to use DataSize.ofBytes(long) directly, first
checking that the supplied Number does not have a fractional part.
Closes gh-36956
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-06-23 12:19:27 +02:00
Yanming Zhou
0fc724b348
Make inner classes in tests static where feasible
...
Closes gh-36939
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-06-17 11:49:12 +02:00
Yanming Zhou
cdc3c52640
Replace isAssignableFrom() with isInstance() where feasible
...
Closes gh-36899
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-06-15 15:16:18 +02:00
Yanming Zhou
cfb8dc6cc8
Fix typos for validateExistingTransaction
...
Closes gh-36767
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-05-09 16:39:50 +02:00
Yanming Zhou
bfb88cfc1c
Remove unnecessary invocations of toString()
...
Closes gh-36709
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-04-27 11:27:29 +03:00
Yanming Zhou
c4dfb24116
Update copyright headers in remaining source files
...
Closes gh-36703
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-04-27 11:26:35 +03:00
Yanming Zhou
f7d3556b8c
Polish DisconnectedClientHelper
...
Use `CollectionUtils::newLinkedHashSet` instead of `LinkedHashSet::new` to avoid resizing.
Closes gh-36618
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-04-08 11:58:36 +02:00
Yanming Zhou and Sam Brannen
8b62ea13a1
Remove deprecated methodIdentification() method in CacheAspectSupport
...
The Javadoc said it's used for logging, but it's not used anywhere.
Closes gh-36560
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
Signed-off-by: Sam Brannen <104798+sbrannen@users.noreply.github.com >
Co-authored-by: Sam Brannen <104798+sbrannen@users.noreply.github.com >
2026-03-31 17:56:47 +02:00
Yanming Zhou
0eba6f0da3
Add typesafe method to get generic bean by name with type reference
...
Fix GH-34687
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-03-24 08:02:58 +01:00
Yanming Zhou
a784eb0ab4
Improve DisconnectedClientHelper to better guard ClassNotFoundException
...
Before this commit, WebClientException is ignored if RestClientException is not present.
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-01-14 11:03:09 +00:00
Yanming Zhou
d3a385d222
Retain original requested bean class for SpringContainedBean
...
Closes GH-36115
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2026-01-09 19:52:22 +01:00
Yanming Zhou
e0353fe75f
Fix buildSrc:test failing on JDKs before JDK 25 with Non-English locale
...
See https://github.com/spring-projects/spring-framework/issues/35777#issuecomment-3551591336
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-11-19 17:43:12 +08:00
Yanming Zhou
871076ef97
Add serialVersionUID in LinkedCaseInsensitiveMap
...
Closes gh-35535
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-09-25 10:27:19 +02:00
Yanming Zhou
4969f6b742
Improve BeanFactoryExtensionsTests
...
Comparing to Java's `BeanFactory.getBean(Class<T> requiredType)`, Kotlin's `BeanFactory.getBean<T>()` supports generic type as `T`, this commit add test to cover that and add assertions.
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-07-07 13:38:02 +02:00
Yanming Zhou
410a9ce108
Mark applicable Scope's methods as default
...
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-07-07 13:37:47 +02:00
Yanming Zhou
88257f7dfd
Discard further rows once maxRows has been reached
...
See https://github.com/spring-projects/spring-framework/issues/34666#issuecomment-2773151317
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-07-07 13:37:31 +02:00
Yanming Zhou
d8ac3ff31f
Fix typo in WebMvc.fn document
...
Closes gh-35045
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-06-13 10:03:07 +02:00
Yanming Zhou
f9fa7cc93b
Add missing "since" in @Deprecated
...
See gh-34942
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-06-04 13:46:22 +01:00
Yanming Zhou
d7c13d6518
HttpEntity.EMPTY should be immutable
...
See gh-34812
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-04-28 14:22:59 +01:00
Yanming Zhou
5be83e9223
Stop calling deprecated JdbcOperations methods
...
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-03-28 14:40:51 +01:00
Yanming Zhou
8819c749ce
Introduce Stream variant methods for SqlQuery
...
Closes GH-34474
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-03-21 18:38:28 +01:00
Yanming Zhou
639af7befa
Add tests to ensure bean definition flag "fallback" take precedence over "defaultCandidate"
...
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-03-08 12:21:31 +01:00
Yanming Zhou
78cc5df748
Deprecate unused "rowsExpected" property of SqlQuery for removal
...
See gh-34526
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-03-03 14:33:14 +01:00
Yanming Zhou
7f020118eb
Polish JdbcTemplate to use getter instead of field
...
1. align with others in the same source file
2. allow subclass to override
Closes: gh-34501
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-02-27 19:11:14 +01:00
Yanming Zhou
cf46f391d7
Improve diagnostics when a Bean Override cannot be selected by type
...
See gh-34004
Closes gh-34006
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
2025-02-10 11:06:10 +01:00
Yanming Zhou
a8c5885aff
Fix wrong document about RequestHeaderArgumentResolver
...
Also test is added to verify that.
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com >
See gh-34230
2025-01-15 18:31:49 +00:00
Yanming Zhou
f35ed8d044
Improve check whether to lowercase scheme
...
See gh-33715
```
Map has no value for 'thescheme'
java.lang.IllegalArgumentException: Map has no value for 'thescheme'
at org.springframework.web.util.UriComponents$MapTemplateVariables.getValue(UriComponents.java:348)
at org.springframework.web.util.UriComponents.expandUriComponent(UriComponents.java:263)
at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:436)
at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:53)
at org.springframework.web.util.UriComponents.expand(UriComponents.java:161)
at org.springframework.web.util.UriComponentsBuilder.buildAndExpand(UriComponentsBuilder.java:364)
```
2024-10-16 12:54:33 +01:00
Yanming Zhou
8941e2876e
Replace 'e.g.' with 'for example' in documentation and comments
...
Closes gh-33515
2024-09-26 14:11:17 +02:00
Yanming Zhou
24a8f1b26d
AnnotatedBeanDefinitionReader should respect @Fallback qualifier analogous to @Primary
...
Also add tests to cover qualifier classes.
2024-09-20 19:10:16 +02:00
Yanming Zhou
019c0b1d4e
Expand acronyms FQN and FQCN
...
Closes gh-33452
2024-09-03 17:30:27 +02:00
Yanming Zhou
a0e43b1f46
Add support for making MapAccessor read-only
...
See gh-33222
2024-07-17 11:32:21 +02:00
Yanming Zhou
5a7bfa9dec
Extend nested placeholders resolution to any CharSequence
...
See gh-32876
2024-05-23 08:36:15 +02:00
Yanming Zhou
a02861f7db
Insist on using CollectionUtils.isEmpty() and StringUtils.hasLength()
...
search `(\w+) != null && !(\1).isEmpty\(\)`
2024-05-09 09:25:09 +02:00
Yanming Zhou
8137cc9566
Polishing
2024-05-08 18:20:13 +02:00
Yanming Zhou
23d89362b0
Polish javadoc of AnnotatedBeanDefinitionReader
...
See gh-32560
2024-04-01 12:12:02 +02:00
Yanming Zhou
246e4977a2
Polishing Optional usage
2024-03-11 09:13:49 +01:00
Yanming Zhou
918c5f1f33
Polish Bean Overriding in Tests section of the reference guide
...
See gh-32411
2024-03-11 08:43:40 +01:00
Yanming Zhou
0e279fe666
Polishing
...
Closes gh-32397
2024-03-08 09:25:03 +01:00
Yanming Zhou
be136d79ee
Improve Javadoc for NamedParameterUtils.substituteNamedParameters()
...
This commit documents that an empty list is not guaranteed to be
supported by the database. For example, MySQL and PostgreSQL do not
support `foo in ()`.
See gh-32380
2024-03-06 11:49:15 +01:00
Yanming Zhou
246ebd24bf
Add missing method BeanDefinitionBuilder.setFallback()
2024-02-29 13:34:55 +01:00
Yanming Zhou
9a1e5eb8d7
Add test for @Fallback with BeanFactory.getBean(Class)
2024-02-29 13:33:43 +01:00
Yanming Zhou
76eb5b8c19
Replace redundant javadoc with {@inheritDoc} for AbstractBeanDefinition
2024-02-22 10:59:35 +01:00
Yanming Zhou
e788aeb25b
Improve GenericTypeResolver to resolve type variable recursively
...
Fix GH-24963
2024-02-15 16:28:45 +01:00
Yanming Zhou
615973cce4
Fix assertion in BeanWrapperAutoGrowingTests
...
See gh-32176
2024-02-01 09:34:32 +01:00
Yanming Zhou
efaf41862c
Polish StatementCreatorUtilsTests
...
See gh-32164
2024-01-31 08:56:59 +01:00
Yanming Zhou
6b3bf554ce
Fix typo
...
Introduced by commit f9726ae0c8
Closes gh-32111
2024-01-25 08:32:43 +01:00
Yanming Zhou
c868bc554f
Refine Kotlin internal modifier impact documentation
...
This commit is a refinement of 01b2856114 .
Closes gh-32010
2024-01-12 12:34:19 +01:00
Yanming Zhou
a3532bfccc
ResponseStatusException reason as message code for ProblemDetail
...
See gh-30300
2023-04-06 17:18:27 +08:00
Yanming Zhou
cfa3aa001f
Replace if with switch where feasible
...
See gh-31916
2023-12-28 13:29:50 +01:00
Yanming Zhou
ea5ef098cf
Use Map.computeIfAbsent() where feasible
...
See gh-31916
2023-12-28 13:23:48 +01:00
Yanming Zhou
72a9864788
Use Object.equals() where feasible
...
See gh-31916
2023-12-28 13:19:03 +01:00
Yanming Zhou
094479b55f
Use diamond operator where feasible
...
See gh-31916
2023-12-28 13:08:08 +01:00
Yanming Zhou
db2c532c07
Use auto boxing and unboxing where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Yanming Zhou
4a450c6fab
Use enhanced for loop where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Yanming Zhou
a35384fd57
Use text block where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Yanming Zhou
dee1b726f9
Use String.repeat() where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Yanming Zhou
45080e3724
Remove unnecessary final modifier
...
final is useless for private and static methods
See gh-31916
2023-12-28 13:01:43 +01:00
Yanming Zhou
7474af4f09
Cleanup kotlin sources
...
1. remove unused import
2. remove redundant semicolon
3. remove redundant empty constructor and SAM-constructor
4. remove unnecessary type argument
5. adjust indent
See gh-31913
2023-12-28 11:46:47 +01:00
Yanming Zhou
3cddb0434d
Add missing @Test
...
See gh-31914
2023-12-28 11:38:03 +01:00
Yanming Zhou
36a72115f9
Fix @Nested class not be executed
...
See gh-31914
2023-12-28 11:37:47 +01:00
Yanming Zhou
9704b809b1
Add support for location patterns in ResourceArrayPropertyEditor
...
This commit adds support for comma delimited location patterns in
ResourceArrayPropertyEditor.
See gh-31700
2023-12-06 15:00:14 +01:00
Yanming Zhou
afcd03bddc
Replace assertThat(x.isEmpty()).isTrue() with assertThat(x).isEmpty()
...
Search for : assertThat\((.+).isEmpty\(\)\).isTrue\(\)
Replace with : assertThat($1).isEmpty()
Search for : assertThat\((.+).isEmpty\(\)\).isFalse\(\)
Replace with : assertThat($1).isNotEmpty()
Closes gh-31758
2023-12-06 10:04:56 +01:00
Yanming Zhou
7b16ef90f1
Replace assertThat(x.equals(y)) with assertThat(x).isEqualTo(y)
...
Search for : assertThat\((.+)\.equals\((\w+)\)\)\.isTrue\(\)
Replace with : assertThat($1).isEqualTo($2)
Search for : assertThat\((.+)\.equals\((\w+)\)\)\.isFalse\(\)
Replace with : assertThat($1).isNotEqualTo($2)
Closes gh-31763
2023-12-06 09:50:15 +01:00
Yanming Zhou
e2852e7355
Replace assertThat(x.contains(y)).isTrue() with assertThat(x).contains(y)
...
Search for : assertThat\((.+)\.contains\((.+)\)\)\.isTrue\(\)
Replace with : assertThat($1).contains($2)
Search for : assertThat\((.+)\.contains\((.+)\)\)\.isFalse\(\)
Replace with : assertThat($1).doesNotContain($2)
Closes gh-31762
2023-12-06 09:48:49 +01:00
Yanming Zhou
1a63257b12
Add missing @Test
...
Closes gh-31761
2023-12-06 09:48:08 +01:00
Yanming Zhou
66e405525b
Replace assertThat(x instanceof y).isTrue() with assertThat(x).isInstanceOf(y.class)
...
Search for : assertThat\((.+) instanceof (\w+)\)\.isTrue\(\)
Replace with : assertThat($1).isInstanceOf($2.class)
Search for : assertThat\((.+) instanceof (\w+)\)\.isFalse\(\)
Replace with : assertThat($1).isNotInstanceOf($2.class)
Closes gh-31760
2023-12-06 09:46:44 +01:00
Yanming Zhou
59815cefce
Replace assertThat(x.get(i)). with assertThat(x).element(i).
...
Search for : assertThat\((.+)\.get\((\d+)\)\)\.
Replace with : assertThat($1).element($2).
Closes gh-31759
2023-12-06 09:43:59 +01:00
Yanming Zhou
785ad399e9
Replace assertThat(x.iterator().next()) with assertThat(x).element(0)
...
Search for : assertThat\((.+).iterator\(\).next\(\)\)
Replace with : assertThat($1).element(0)
2023-12-06 10:52:39 +08:00
Yanming Zhou
6f11716b6f
Use idiomatic AssertJ map assertions
...
See gh-31752
2023-12-05 10:01:38 +01:00
Yanming Zhou
490b5c77fc
Use switch expression where feasible
2023-12-04 15:42:55 +01:00
Yanming Zhou
feef98b73c
Correct conversion from Resource[] with length 1 to Collection<Resource>
...
Fix GH-31693
2023-11-30 14:05:13 +01:00
Yanming Zhou
64d5e904e8
Use AssertJ isInstanceOf where feasible
...
See gh-31694
2023-11-28 12:49:32 +01:00
Yanming Zhou
0b61755ea3
Polish GenericTypeResolver Javadoc
...
See gh-31663
2023-11-24 08:28:27 +01:00
Yanming Zhou
3a6d0c1d5b
Always fall back to original method if annotation pointcut used
...
Prior to this commit, AspectJExpressionPointcut doesn't fall back to original method if `!@annotation()` is used, it can cause false positive result.
Fix GH-27119
2023-11-23 16:01:18 +01:00
Yanming Zhou
f46902869f
Polish LruContextCacheTests
...
Use AssertJ's extracting() feature instead of ReflectionTestUtils.getField().
Closes gh-31640
2023-11-21 11:22:16 +01:00
Yanming Zhou
46397381ba
Eliminate synchronized block to avoid thread pinning in SingletonSupplier
2023-09-14 16:37:32 +02:00
Yanming Zhou
94a49c4ed3
Log warning if ResponseStatus 'reason' is set and handler returns value
...
When a handler method is annotated with `@ResponseStatus(reason="...")`,
Spring MVC will use `HttpServletResponse#sendError` to complete the
response. As a result, the Servlet container will send an HTML error
page and any existing data in the response buffer will be cleared.
This commit clarifies the `@ResponseStatus` Javadoc and ensures that a
message is logged at the WARN level if a handler method is annotated
like this and still returns a non-Void value. In this case, the return
value will be ignored and developers should be aware of this fact.
See gh-31113
Closes gh-31121
2023-09-07 19:00:26 +02:00
Yanming Zhou
368036cab4
Allow overriding dynamic property from enclosing class in nested test class
...
Prior to this commit, a dynamic property registered via a
@DynamicPropertySource method in a @Nested test class was not able to
override a property registered via a @DynamicPropertySource method in
the enclosing class.
See gh-26091
Closes gh-31083
2023-08-21 14:03:24 +02:00
Yanming Zhou
56b60120fe
Stop using deprecated AbstractArchiveTask.archivePath in Gradle build
...
This commit addresses the following warning in the build.
The AbstractArchiveTask.archivePath property has been deprecated. This
is scheduled to be removed in Gradle 9.0. Please use the archiveFile
property instead. See
https://docs.gradle.org/8.1.1/dsl/org.gradle.api.tasks.bundling.AbstractArchiveTask.html#org.gradle.api.tasks.bundling.AbstractArchiveTask:archivePath
for more details.
Closes gh-30697
2023-07-03 17:09:48 +02:00
Yanming Zhou
d8729a7c67
Polish variable name in ReschedulingRunnable
...
As a variable name, `initDelay` is applicable for `scheduleAtFixedRate`
and `scheduleWithFixedDelay` but not for `schedule`.
Closes gh-30762
2023-06-30 13:57:46 +02:00
Yanming Zhou
a8f31f5b9e
Improve ProblemDetail equals and hashCode
...
Lazy computed title property should be taken into account
See gh-30294
2023-04-12 15:07:22 +01:00
Yanming Zhou
55392dfbd7
Define xml namespace as constant
...
See gh-29949
2023-02-13 07:51:30 +00:00
Yanming Zhou
6d2a25b877
Fix typo in observability documentation
...
Closes gh-29590
2022-11-28 15:13:03 +01:00
Yanming Zhou
19cbba6b34
Use correct RFC number for ProblemDetail support in Javadoc
...
Closes gh-29302
2022-10-13 16:16:41 +02:00
Yanming Zhou
acf2955b96
Ban jetbrains annotations imports
...
Closes gh-28226
2022-03-24 13:31:36 +01:00
Yanming Zhou
d836fb4a7a
Remove unnecessary @SuppressWarnings
...
See gh-27807
2021-12-13 09:34:22 +01:00
Yanming Zhou
b4b3c2ead6
Fix typo
...
See gh-27699
2021-11-22 10:30:45 +01:00
Yanming Zhou
f2be4e9320
Use MessageSource for @ExceptionHandler methods
...
Follow-up for commit bb816c123c
See gh-27203
2021-07-29 14:49:02 +01:00
Yanming Zhou
2fbfd8a5db
Avoid unnecessary wrapping for SqlParameterValue
...
Fix https://github.com/spring-projects/spring-framework/issues/26467
2021-02-15 11:15:37 +01:00
Yanming Zhou
9c11887fe8
Use lowercase property names in SpEL examples
...
Closes gh-25538
2020-10-27 11:48:44 +01:00
Yanming Zhou
a2bb59f1b8
Replace StringBuffer with StringBuilder where possible
2020-09-03 22:40:51 +02:00
Yanming Zhou
d2e1150c79
Fix typo in javadoc for @RequestMapping
...
Closes gh-25396
2020-07-16 08:41:39 +02:00
Yanming Zhou
94f1d77e22
Polish StringHttpMessageConverter.getContentTypeCharset()
...
Closes gh-25126
2020-05-26 18:26:21 +02:00
Yanming Zhou
9d429e30de
Fix SpelEvaluationException with example code
...
org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'name' cannot be found on null
2020-05-18 14:16:15 +02:00
Yanming Zhou
50a4fdac6e
Use Map::computeIfAbsent to simplify scope implementations
...
Closes gh-25038
2020-05-10 15:41:00 +02:00