Stéphane Nicoll
87855e2d34
Clear ShadowMatch instances when they are no longer needed
...
This commit gathers the ShadowMatch instances that AspectJ requires in
a dedicated class that can be used to clear the instances when they are
no longer required.
As those are mainly triggered via AspectJAwareAdvisorAutoProxyCreator,
it now implements the necessary callbacks to clear the cache.
Closes gh-12334
2024-04-29 16:25:11 +02:00
Juergen Hoeller
77c6f160fe
Merge branch '6.1.x'
...
# Conflicts:
# spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java
# spring-web/src/test/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolverTests.java
# spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestParamMethodArgumentResolverTests.java
2024-04-10 18:29:48 +02:00
Juergen Hoeller
39cd31613b
Polishing
2024-04-10 18:06:32 +02:00
Juergen Hoeller
f6089afd0e
Use ClassLoaderAwareGeneratorStrategy with UndeclaredThrowableStrategy delegate
...
See gh-32469
2024-04-10 13:23:24 +02:00
Mikaël Francoeur
561583842f
Consistent handling of undeclared checked exceptions in CGLIB proxies ( #32469 )
...
Co-authored-by: hengyunabc <hengyunabc@gmail.com >
Co-authored-by: Mikaël Francoeur <mikael.francoeur@ticketmaster.com >
2024-04-10 12:11:33 +02:00
Sébastien Deleuze
bb04c6b1f3
Merge branch '6.1.x'
2024-04-09 15:22:58 +02:00
Sébastien Deleuze
23696b7db8
Add a classpath check for AOP Coroutines/Reactive conversion
...
Closes gh-32599
2024-04-09 15:21:21 +02:00
Sébastien Deleuze
0c42874629
Merge branch '6.1.x'
2024-04-05 14:33:20 +02:00
Sébastien Deleuze
4a7c24d90f
Refine null-safety
...
See gh-32475
2024-04-05 14:30:50 +02:00
Sébastien Deleuze
2fea3d7921
Merge branch '6.1.x'
2024-03-26 15:41:46 +01:00
Sébastien Deleuze
290a41d398
Refine null-safety in more modules
...
This commit refines the null-safety in all remaining modules
except spring-test.
See gh-32475
2024-03-26 15:39:18 +01:00
Sébastien Deleuze
5b660da52d
Perform NullAway build-time checks in more modules
...
This commit enables null-safety build-time checks in:
- spring-jdbc
- spring-r2dbc
- spring-orm
- spring-beans
- spring-aop
See gh-32475
2024-03-26 09:59:30 +01:00
Sébastien Deleuze
3b4f8dbb8e
Merge branch '6.1.x'
2024-03-26 09:47:09 +01:00
Sébastien Deleuze
1b563f8ba4
Refine null-safety in more modules
...
This commit refines the null-safety in:
- spring-jdbc
- spring-r2dbc
- spring-orm
- spring-beans
- spring-aop
See gh-32475
2024-03-26 09:46:34 +01:00
Juergen Hoeller
e58ea0d945
Merge branch '6.1.x'
...
# Conflicts:
# spring-core/src/main/java/org/springframework/core/CoroutinesUtils.java
2024-03-19 10:06:48 +01:00
Juergen Hoeller
c531a8a705
Nullability refinements and related polishing
...
See gh-32475
2024-03-19 09:58:44 +01:00
Juergen Hoeller
79c54098ab
Merge branch '6.1.x'
2024-03-04 23:49:55 +01:00
Juergen Hoeller
4300fec023
Restore ability to return original method at ClassUtils level as well
...
Closes gh-32365
2024-03-04 23:48:26 +01:00
Sam Brannen
122372c580
Spring cleaning: update copyright headers
2024-02-23 12:21:22 +01:00
Sam Brannen
4bd1485ce4
Spring cleaning: use method references
2024-02-23 12:20:11 +01:00
Sam Brannen
4339c8eac2
Spring cleaning: use diamond operator
2024-02-23 12:20:11 +01:00
Sam Brannen
3fb170058f
Polish contribution
...
See gh-32294
2024-02-21 14:09:09 +01:00
Patrick Strawderman
f9fe8efb2e
Use ConcurrentHashMap.newKeySet
...
In places where a ConcurrentHashMap was used as a set by wrapping it
with Collections.newSetFromMap, switch to just using the set returned
by ConcurrentHashMap.newKeySet directly.
Closes gh-32294
2024-02-21 14:08:38 +01:00
Juergen Hoeller
902e5707a8
Revise singleton registry for lenient locking (fallback instead of deadlock)
...
Closes gh-23501
2024-02-19 15:49:33 +01:00
Sam Brannen
db535863dd
Consistently use class literals for primitive types
...
To improve consistency and avoid confusion regarding primitive types
and their wrapper types, this commit ensures that we always use class
literals for primitive types.
For example, instead of using the `Void.TYPE` constant, we now
consistently use `void.class`.
2024-01-30 15:26:12 +01:00
Juergen Hoeller
c6121da151
Polishing
2024-01-24 22:30:33 +01:00
Juergen Hoeller
89e7174cc4
Share cached interceptors for entire Advised instance if possible
...
Closes gh-32104
2024-01-24 22:30:22 +01:00
Juergen Hoeller
03b6e51225
Evaluate thread-bound MethodInvocation only if it matches current Method
...
Closes gh-26068
2024-01-09 11:54:05 +01:00
Juergen Hoeller
419e34e571
Introduce getMostSpecificMethod variant on BridgeMethodResolver
...
This is able to resolve the original method even if no bridge method has been generated at the same class hierarchy level (a known difference between the Eclipse compiler and regular javac).
Closes gh-21843
2024-01-07 16:33:06 +01:00
Juergen Hoeller
43107e7eb1
Propagate arguments for dynamic prototype-scoped advice
...
Closes gh-28407
2024-01-07 00:12:15 +01:00
Stéphane Nicoll
e22d1efdc0
Update copyright year of changed files
...
See gh-31930
2024-01-01 11:00:56 +01:00
Johnny Lim
ff8097d37c
Polish
...
See gh-31930
2024-01-01 10:59:35 +01:00
Juergen Hoeller
fdb454b9a4
Declare JdkDynamicAopProxy's ProxiedInterfacesCache as private
...
See gh-30499
2023-12-31 13:48:50 +01:00
Yanming Zhou
cfa3aa001f
Replace if with switch where feasible
...
See gh-31916
2023-12-28 13:29:50 +01:00
Yanming Zhou
4a450c6fab
Use enhanced for loop where feasible
...
See gh-31916
2023-12-28 13:01:44 +01:00
Sébastien Deleuze
8bd8c4f627
Add support for @Async Kotlin function returning Unit?
...
Closes gh-31881
2023-12-22 15:33:34 +01:00
Juergen Hoeller
cd11219fa7
Declare proxyMetadataCache as volatile and ProxiedInterfacesCache fields as final
...
See gh-30499
2023-12-22 12:27:03 +01:00
Juergen Hoeller
44c652ec98
Introduce ProxiedInterfacesCache for JdkDynamicAopProxy
...
Closes gh-30499
2023-12-22 11:55:59 +01:00
Stéphane Nicoll
68931a2091
Upgrade copyright year of changed file
...
See gh-31847
2023-12-15 07:36:50 +01:00
achhibi
7f79ccbec0
Combine conditions for better readability and simplicity
2023-12-14 20:29:09 +01:00
Juergen Hoeller
6bb9775309
Declare isStatic and releaseTarget as default methods on TargetSource
...
Closes gh-31820
2023-12-12 12:39:52 +01:00
Sébastien Deleuze
9aded3fcad
Fix a NPE in proxied suspending functions
...
Closes gh-31809
2023-12-11 21:21:34 +01:00
Juergen Hoeller
121e3540cc
Clear cached executors in setBeanFactory (for reused AspectJ aspect)
...
Closes gh-28201
2023-11-23 16:15:01 +01:00
Juergen Hoeller
0d8dee2878
Apply fallback for proxy with negative match or annotation pointcut
...
See gh-30534
2023-11-23 16:14:33 +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
Juergen Hoeller
99378fe947
Polishing
2023-11-16 11:22:09 +01:00
Brian Clozel
8eebb5e27b
Polish
...
See gh-31575
2023-11-15 15:26:49 +01:00
Sébastien Deleuze
92c3843dae
Add required AspectJ field hints
...
This commit adds reflection hints on fields for
classes compiled by AspectJ.
Closes gh-31575
2023-11-15 10:30:02 +01:00
Sam Brannen
c7bb981db1
Ensure it's possible to extend ControlFlowPointcut with RegEx support
...
Commit d3fba6d49b introduced built-in pattern matching support for
method names in ControlFlowPointcut; however, it was still cumbersome
to extend ControlFlowPointcut with support for regular expressions
instead of simple pattern matching.
To address that, this commit introduces a variant of isMatch() that
accepts the pattern index instead of the pre-resolved method name
pattern. The default implementation retrieves the method name pattern
from the methodNamePatterns field and delegates to isMatch(String, String).
Subclasses can override the new isMatch(String, int) method to support
regular expressions, as can be seen in the example
RegExControlFlowPointcut class in ControlFlowPointcutTests.
See gh-31435
2023-10-28 16:30:02 +02:00
Sam Brannen
7f1beb0140
Polishing
2023-10-28 16:24:59 +02:00