[ 
https://issues.apache.org/jira/browse/WW-4554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14982129#comment-14982129
 ] 

ASF subversion and git services commented on WW-4554:
-----------------------------------------------------

Commit ba361aad36528d5eb2e5ea745227e83a469024a0 in struts's branch 
refs/heads/master from [~lukaszlenart]
[ https://git-wip-us.apache.org/repos/asf?p=struts.git;h=ba361aa ]

WW-4554 Drops duplicated calls to initialize BeanPostProcessors
 It's already done by Spring

(cherry picked from commit 7848534e2f2a8cf4aa956d27b6cf672f36cfacfe)


> 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, 2.5
>
>
> 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)

Reply via email to