reta opened a new pull request #529: CXF-8009: CXF should not rely on ClassUtils for CGLIB proxy checks URL: https://github.com/apache/cxf/pull/529 This is a tricky one. So the `ClassUtils.isCglibProxyClass`, which is used by `SpringAopClassHelper`, does check if the class name has `$$` to disambiguate CGLIB proxies from regular classes. The typical examples of CGLIB proxy class names are: ``` SpringProxy$$EnhancerBySpringCGLIB$$d8e73a30 Function$$EnhancerByCGLIB$$53576dae ``` However, the classes generated for lambda expressions do contain `$$` as well, tricking `SpringAopClassHelper` to believe it is a CGLIB proxy, here is an example: ``` org.apache.cxf.common.util.ClassHelperTest$$Lambda$10/846254484@32b260fa ``` It turned out to be difficult to come up with efficient and bullet-proof check (based on class name only) to determine if it is CGLIB generated proxy or not. The cheapest but not 100% reliable way seems to be to check the presence of the `CGLIB` in the class name (this PR). Alternatively, using the reflection it is possible to achieve more reliable outcomes by inspecting the class, looking for CGLIB generated methods / fields (`CGLIB$BIND_CALLBACKS`). I am not sure it is worth it actually. @dkulp @coheigea what do you think, guys?
---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services