EJB 3.0
  1. EJB 3.0
  2. EJBTHREE-2070

PostConstruct (and PreDestroy) of a singleton bean don't run in a transaction context

    Details

    • Component Fix Version(s):
      1.0.0-alpha-25
    • Similar Issues:
      Show 10 results 

      Description

      The EJB3.1 spec states:

      4.8.3 Transaction Semantics of Initialization and Destruction
      PostConstruct and PreDestroy methods of Singletons with container-managed transactions are transac-
      tional. From the bean developer's view there is no client of a PostConstruct or PreDestroy method.
      A PostConstruct or PreDestroy method of a Singleton with container-managed transactions has transac-
      tion attribute REQUIRED, REQUIRES_NEW, or NOT_SUPPORTED (Required , RequiresNew, or
      NotSupported if the deployment descriptor is used to specify the transaction attribute).
      Note that the container must start a new transaction if the REQUIRED (Required) transaction
      attribute is used. This guarantees, for example, that the transactional behavior of the PostConstruct
      method is the same regardless of whether it is initialized eagerly at container startup time or as a side
      effect of a first client invocation on the Singleton. The REQUIRED transaction attribute value is
      allowed so that specification of a transaction attribute for the Singleton PostConstruct/PreDestroy
      methods can be defaulted.

      However, the current implementation of singleton (1.0.0-alpha-2) does not run the postconstruct and predestroy methods in a transaction context.

        Issue Links

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              Carlo de Wolf
              Reporter:
              jaikiran pai
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: