funky-eyes commented on code in PR #8106:
URL: https://github.com/apache/incubator-seata/pull/8106#discussion_r3301960217
##########
spring/seata-spring/src/main/java/org/apache/seata/spring/annotation/GlobalTransactionScanner.java:
##########
@@ -518,7 +518,7 @@ private MethodDesc makeMethodDesc(GlobalTransactional anno,
Method method) {
@Override
protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String
beanName, TargetSource customTargetSource)
throws BeansException {
- return new Object[] {interceptor};
+ return interceptor == null ? DO_NOT_PROXY : new Object[] {interceptor};
Review Comment:
> My understanding is that this only affects the early AOT bean type
determination phase, where getAdvicesAndAdvisorsForBean is invoked before
wrapIfNecessary initializes the interceptor.
>
> In the normal runtime path, wrapIfNecessary initializes the interceptor
before proxy creation, so the transactional interceptor is applied as usual.
>
> The change only avoids returning new Object[] { null } during the
premature AOT inspection stage, which currently causes
UnknownAdviceTypeException. So the intention is not to permanently bypass the
interceptor, but only to avoid creating an invalid proxy before the interceptor
becomes available.
Do you mean this phase gets triggered during mvn clean package -Pnative,
when Spring briefly starts the application to generate the AOT metadata?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]