You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AspectJExpressionPointcut.initializePointcutParser() calls PointcutParser.getPointcutParserSupportingSpecifiedPrimitivesAndUsingContextClassloaderForResolution() which uses the current thread's context class loader to initialize the pointcut parser's world. the context classloader is never set to the classloader of the current beanfactory though (i'm calling ApplicationContext.refresh() initially).
either the context classloader needs to be set or p.setClassLoader(beanFactory.getClassLoader()) needs to be called somewhere in AspectJExpressionPointcut.
"we're also initializing the PointcutParser lazily now" - what does that exactly mean? will there then be a separate instance of the PointcutParser per context? that would partially solve #12225 then.
Well, we used to initialize the PointcutParser in AspectJExpressionPointcut's constructor. Now we're doing it in buildPointcutExpression; nothing fancy really, just a bit later in the AspectJExpressionPointcut object's lifecycle. A PointcutParser is still being created individually for ever pointcut expression, like before.
Harald Radi opened SPR-7570 and commented
AspectJExpressionPointcut.initializePointcutParser() calls PointcutParser.getPointcutParserSupportingSpecifiedPrimitivesAndUsingContextClassloaderForResolution() which uses the current thread's context class loader to initialize the pointcut parser's world. the context classloader is never set to the classloader of the current beanfactory though (i'm calling ApplicationContext.refresh() initially).
either the context classloader needs to be set or p.setClassLoader(beanFactory.getClassLoader()) needs to be called somewhere in AspectJExpressionPointcut.
Affects: 3.0.4
Referenced from: commits f88f69e
The text was updated successfully, but these errors were encountered: