[
https://issues.jboss.org/browse/WFLY-4608?page=com.atlassian.jira.plugin....
]
Ivo Studensky commented on WFLY-4608:
-------------------------------------
The fix has been more or less rejected, but there is still an issue to answer. Thus, I am
moving the discussion from github to this place.
Ivo Studensky wrote:
There still is a use-case which might violate the spec. If a Stateful/Singleton without
any {{@PostConstruct}} method is annotated with a {{@Interceptor}} with its own
{{@PostConstruct}} method and the bean is annotated with
{{(a)TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)}}, the post-construct
method of the interceptor should be executed within a new transaction. In WildFly,
however, it is executed as {{TransactionAttributeType.NOT_SUPPORTED}} because it is the
default if LifecycleCMTTxInterceptor's factory is constructed with {{null}} method
identifier. Note that it might be easily work-arounded by an empty post-construct method
in the bean class.
Excerpt from the Interceptors 1.2 spec, section 2.6:
{quote}
Lifecycle callback interceptor methods are invoked in a transaction context determined by
their target class and/or method \[5\].
\[5\] In general, such a lifecycle callback interceptor method will be invoked in an
unspecified
transaction context. Note however that singleton and stateful session beans support the
use of
a transaction context for the invocation of their lifecycle call interceptor methods (see
the
Enterprise JavaBeansTM specification \[2\]). The transaction context may be also changed
by
transactional interceptors in the invocation chain.
{quote}
Omit no-op transaction if lifecycle method is missing
-----------------------------------------------------
Key: WFLY-4608
URL:
https://issues.jboss.org/browse/WFLY-4608
Project: WildFly
Issue Type: Bug
Components: EJB
Affects Versions: 9.0.0.CR1
Reporter: Ivo Studensky
Assignee: Ivo Studensky
Fix For: 10.0.0.CR4
LifecycleCMTTxInterceptor creates a no-op transaction even if there is no lifecycle
method defined in the bean.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)