[jboss-jira] [JBoss JIRA] (WFLY-5235) CDI interceptors are not called when invoking observer method
Dirk Weil (JIRA)
issues at jboss.org
Tue Sep 22 15:36:00 EDT 2015
[ https://issues.jboss.org/browse/WFLY-5235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13111464#comment-13111464 ]
Dirk Weil commented on WFLY-5235:
---------------------------------
I finally found some time to dig into the problem a little bit more: If the observer method is private, interceptors are not called. With non-private methods, interceptors are working as expected. This behaviour has changed from WildFly 8.2.0 to 9.0.1. I didn't check WildFly 10.
I tried to find out from the specification, if interceptors should be called when invoking private methods, but found no unmistakable statement. If someone could clarify that, I would be very thankful.
I can imagine, that the methods intercepted must be non-private. But if that is the case, an appropriate exception should be thrown, if they are private.
The problem can be reproduced with this demo: https://github.com/dirkweil/wildfly-cdiscopeinit-demo. If you build the application (just run mvn) and deploy the resulting war file onto WildFly 8, no exception arises. If using WildFly 9 a TransactionRequiredException is thrown in the observer method de.gedoplan.beantrial.wildflycdiscopeinit.service.InitTestDataService.createTestData.
> CDI interceptors are not called when invoking observer method
> -------------------------------------------------------------
>
> Key: WFLY-5235
> URL: https://issues.jboss.org/browse/WFLY-5235
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld
> Affects Versions: 9.0.1.Final
> Reporter: Dirk Weil
> Assignee: Martin Kouba
>
> The following code runs with an active transaction on WFLY 8.2.0, but failes with an TransactionRequiredException on WFLY 9.0.1:
> @ApplicationScoped
> public class InitCocktailDemoDataService
> {
> @PersistenceContext
> private EntityManager entityManager;
> @Transactional
> private void createDemoData(@Observes @Initialized(ApplicationScoped.class) Object event)
> {
> this.entityManager.merge(someEntity);
> }
> It seems that interceptors aren't called at all - at least for observers of scope lifecycle events.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list