unic/neba

@AfterMapping methods from Spring beans may be invoked twice

olaf-otto opened this issue · 1 comments

Since NEBA 5.1.0, Model methods annotated with @AfterMapping may be invoked twice, since the post-mapping is directly and indirectly called:

at io.neba.core.resourcemodels.mapping.ModelPostProcessor.processAfterMapping(ModelPostProcessor.java:57)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.postProcess(ResourceToModelMapper.java:168)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.map(ResourceToModelMapper.java:154)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.lambda$map$0(ResourceToModelMapper.java:122)
	at io.neba.spring.resourcemodels.registration.SpringResourceModelFactory.provideModel(SpringResourceModelFactory.java:59)
	at io.neba.core.util.OsgiModelSource.getModel(OsgiModelSource.java:66)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.map(ResourceToModelMapper.java:138)
	at io.neba.core.resourcemodels.adaptation.ResourceToModelAdapter.getAdapter(ResourceToModelAdapter.java:98)
	at org.apache.sling.adapter.internal.AdapterManagerImpl.getAdapter(AdapterManagerImpl.java:143)
at io.neba.core.resourcemodels.mapping.ModelPostProcessor.processAfterMapping(ModelPostProcessor.java:57)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.postProcess(ResourceToModelMapper.java:168)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.map(ResourceToModelMapper.java:154)
	at io.neba.core.resourcemodels.mapping.ResourceToModelMapper.lambda$map$0(ResourceToModelMapper.java:122)
	at io.neba.spring.resourcemodels.registration.ContentToModelMappingBeanPostProcessor.postProcessBeforeInitialization(ContentToModelMappingBeanPostProcessor.java:58)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)

Fixed with #375