[
https://issues.apache.org/jira/browse/WW-4554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14966339#comment-14966339
]
Lukasz Lenart commented on WW-4554:
-----------------------------------
Not sure if I understand, the mentioned lines are using
{{autoWiringFactory.autowire(...)}} which has the following JavaDoc
{noformat}
* <p>Does <i>not</i> apply standard {@link BeanPostProcessor
BeanPostProcessors}
* callbacks or perform any further initialization of the bean. This
interface
* offers distinct, fine-grained operations for those purposes, for
example
* {@link #initializeBean}. However, {@link
InstantiationAwareBeanPostProcessor}
* callbacks are applied, if applicable to the construction of the
instance.
{noformat}
So according to this {{BeanPostProcessor}} shouldn't be applied and if it is
it's a bug in Spring.
> Spring BeanPostProcessor(s) are called twice for Struts constructed objects.
> ----------------------------------------------------------------------------
>
> Key: WW-4554
> URL: https://issues.apache.org/jira/browse/WW-4554
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - Spring
> Affects Versions: 2.3.24
> Reporter: Chris Cranford
> Fix For: 2.3.25
>
>
> It appears that the SpringObjectFactory in the xwork core at lines 194-197
> manually yet when calling initializeBean on the autowire factory, the spring
> framework automatically invokes these processors too which lead to the
> following post processor's callbacks being invoked twice for both the before
> and after handlers.
> I confirmed that both Sprnig 3.0.5 and 4.2.1 have called the bean post
> processors when the initializeBean function is called. See a simple
> NullBeanPostProcessor implementation below that can be used as a simple test
> of post processor invocation.
> {code:title=NullBeanPostProcessor.java|borderStyle=solid}
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> import org.springframework.beans.BeansException;
> import org.springframework.beans.factory.config.BeanPostProcessor;
> /**
> * @since 7.0.0
> */
> public class NullBeanPostProcessor implements BeanPostProcessor {
> private static final Logger LOGGER =
> LoggerFactory.getLogger(NullBeanPostProcessor.class);
>
> /**
> * {@inheritDoc}
> */
> @Override
> public Object postProcessBeforeInitialization(Object bean, String
> beanName)
> throws BeansException {
> LOGGER.debug("Before Initialization for {} ({})", beanName,
> bean);
> return bean;
> }
> /**
> * {@inheritDoc}
> */
> @Override
> public Object postProcessAfterInitialization(Object bean, String
> beanName)
> throws BeansException {
> LOGGER.debug("After Initialization for {} ({})", beanName,
> bean);
> return bean;
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)