Juergen Hoeller
576f109987
Use JDK proxy for introduction interface without target
...
Closes gh-33985
2024-12-04 21:03:09 +01:00
Sam Brannen
8d69370b95
Consider logical equality in AdvisedSupport.MethodCacheKey#equals
...
Prior to this commit, the equals() implementation in AdvisedSupport's
MethodCacheKey only considered methods to be equal based on an identity
comparison (`==`), which led to duplicate entries in the method cache
for the same logical method.
This is caused by the fact that AdvisedSupport's
getInterceptorsAndDynamicInterceptionAdvice() method is invoked at
various stages with different Method instances for the same method:
1) when creating the proxy
2) when invoking the method via the proxy
The reason the Method instances are different is due to the following.
- Methods such as Class#getDeclaredMethods() and
Class#getDeclaredMethod() always returns "child copies" of the
underlying Method instances -- which means that `equals()` should be
used instead of (or in addition to) `==` whenever the compared Method
instances can come from different sources.
With this commit, the equals() implementation in MethodCacheKey now
considers methods equal based on identity or logical equality, giving
preference to the quicker identity check.
See gh-32586
Closes gh-33915
2024-12-04 12:04:02 +01:00
Sam Brannen
173084f81a
Polish Spring AOP documentation
2024-11-17 12:21:16 +01:00
Sébastien Deleuze
7e1d6fe934
Merge branch '6.1.x'
2024-11-05 10:27:22 +01:00
Johnny Lim
0beb56a58c
Fix indentation to use tabs in Kotlin source files
...
Closes gh-33840
2024-11-05 10:24:02 +01:00
Brian Clozel
79cf554850
Merge branch '6.1.x'
2024-10-30 10:37:17 +01:00
Brian Clozel
8ffbafd384
Prevent accidental Sysouts in the codebase
2024-10-30 10:36:30 +01:00
Juergen Hoeller
a1f6098158
Merge branch '6.1.x'
2024-10-29 23:04:05 +01:00
Juergen Hoeller
fa21dffcf8
Restore traditional AspectJ behavior through "spring.aop.ajc.ignore=true"
...
Closes gh-33704
2024-10-29 23:01:16 +01:00
Juergen Hoeller
9e3371ef07
Mark ListenableFuture as deprecated for removal
...
Closes gh-33808
2024-10-29 18:36:40 +01:00
Sam Brannen
52e813d0ad
Improve structure and naming of ProxyExceptionHandlingTests
...
Closes gh-33797
2024-10-25 16:14:42 +02:00
Sam Brannen
f19a1b50e5
Polishing
2024-10-25 15:22:56 +02:00
Sébastien Deleuze
d65bdce0e8
Remove CglibMethodInvocation
...
This class does not add anything anymore and can be
replaced by a plain ReflectiveMethodInvocation.
Closes gh-33585
2024-10-03 19:53:49 +02:00
Sébastien Deleuze
eebaa3538a
Fix a regression in Cglib Kotlin proxies
...
The commit skips using UndeclaredThrowableStrategy for
Kotlin classes in CglibAopProxy in order to fix a
related regression caused by gh-32469.
See gh-33585
2024-10-03 19:49:59 +02:00
Juergen Hoeller
56f3a48879
Merge branch '6.1.x'
...
# Conflicts:
# spring-context/src/main/java/org/springframework/context/aot/AbstractAotProcessor.java
2024-09-27 19:17:32 +02:00
Juergen Hoeller
9f4968ed05
Polishing
2024-09-27 19:16:12 +02:00
Juergen Hoeller
8680c43368
Check for advisor-introduced interfaces specifically
...
See gh-31304
2024-09-27 11:07:11 +02:00
Juergen Hoeller
552a5cde36
Create CGLIB proxy in case of no target interfaces (just introductions)
...
Closes gh-31304
2024-09-26 14:48:42 +02: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
Sam Brannen
167cb5d494
Polishing
2024-08-29 17:02:08 +02:00
Sébastien Deleuze
bb4a96f227
Merge branch '6.1.x'
2024-08-12 17:32:53 +02:00
Sébastien Deleuze
1911ca728d
Support invoking bridged suspending functions in AopUtils
...
Closes gh-33045
2024-08-12 17:27:41 +02:00
Juergen Hoeller
8cfdaaaabc
Merge branch '6.1.x'
2024-07-10 15:57:24 +02:00
Juergen Hoeller
f2b3263fff
Polishing
2024-07-10 15:56:56 +02:00
Juergen Hoeller
a9efe10428
Merge branch '6.1.x'
...
# Conflicts:
# spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java
2024-07-10 15:16:40 +02:00
Juergen Hoeller
3ccaefe38f
Polishing
2024-07-10 15:15:32 +02:00
Juergen Hoeller
c681614bc2
Merge branch '6.1.x'
2024-06-28 11:36:53 +02:00
Juergen Hoeller
100da83913
Detect ajc markers in superclasses as well (for weaving check)
...
Closes gh-33113
2024-06-28 11:36:17 +02:00
Juergen Hoeller
2aabe238c6
Merge branch '6.1.x'
...
# Conflicts:
# spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java
2024-06-06 20:47:02 +02:00
Juergen Hoeller
0ea96b4806
Skip ajc-compiled aspects for ajc-compiled target classes
...
Includes defensive ignoring of incompatible aspect types.
Closes gh-32970
2024-06-06 20:42:07 +02:00
Juergen Hoeller
3305485d1e
Merge branch '6.1.x'
2024-06-05 16:33:44 +02:00
Juergen Hoeller
4f6f2c0d41
Revert to separate get/put steps against method cache for concurrency
...
Closes gh-32958
2024-06-05 16:32:27 +02:00
Juergen Hoeller
f7e7d1b7b0
Merge branch '6.1.x'
2024-06-03 12:47:17 +02:00
Juergen Hoeller
8a84241c1e
Polishing
2024-06-03 12:46:31 +02:00
Juergen Hoeller
624be6d4e6
Report bean creation failure in sortAdvisors as AopConfigException
...
Closes gh-32230
2024-06-03 12:46:14 +02:00
Sam Brannen
dac18a3ff1
Clean up warnings in Gradle build
2024-05-24 13:39:56 +02:00
Juergen Hoeller
0110c5ac82
Merge branch '6.1.x'
2024-05-23 17:08:22 +02:00
Juergen Hoeller
6d7cd9c7dc
Defensive handling of incompatible advice methods
...
This covers AspectJ transaction and caching aspects when encountered by Spring AOP.
Closes gh-32882
See gh-32793
2024-05-23 17:07:51 +02:00
Juergen Hoeller
35278d09ac
Polishing
2024-05-23 16:34:24 +02:00
Juergen Hoeller
2170db6996
Skip expression resolution in getShadowMatch (aligned with 6.1.x)
...
See gh-32793
See gh-32838
2024-05-22 15:39:36 +02:00
Juergen Hoeller
e4f35ebcc5
Merge branch '6.1.x'
2024-05-22 10:01:30 +02:00
Juergen Hoeller
ea596aa211
Select most specific advice method in case of override
...
Closes gh-32865
2024-05-22 10:00:31 +02:00
Juergen Hoeller
f0c6fab39e
Merge branch '6.1.x'
...
# Conflicts:
# gradle.properties
# spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java
2024-05-17 12:30:39 +02:00
Juergen Hoeller
617833bec9
Defensively catch and log pointcut parsing exceptions
...
Closes gh-32838
See gh-32793
2024-05-17 12:27:59 +02:00
Juergen Hoeller
9516f87e5e
Merge branch '6.1.x'
2024-05-14 13:48:01 +02:00
Juergen Hoeller
b7aafda872
Polishing
2024-05-14 13:43:35 +02:00
Juergen Hoeller
b3005fcdde
Merge branch '6.1.x'
2024-05-10 13:53:04 +02:00
Juergen Hoeller
a4135bac5c
Leniently ignore unsupported pointcut expression
...
See gh-32793
2024-05-10 13:52:39 +02:00
Juergen Hoeller
b2d43f54e0
Merge branch '6.1.x'
2024-05-10 12:29:49 +02:00
Juergen Hoeller
bf08e0c1b4
Polishing
2024-05-10 12:27:29 +02:00