Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-1103

EJB using CMT demarcation with an injection point of type UserTransaction is not detected as definition error


    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.0.0.Alpha3
    • 1.1.5.Final, 2.0.0.Alpha1
    • None
    • None

      CDI spec 3.7. Additional built-in beans states:
      "If a Java EE component class has an injection point of type UserTransaction and qualifier @Default, and may not validly make use of the JTA UserTransaction according to the Java EE platform specification, the container automatically detects the problem and treats it as a definition error."

      ... and EJB 3.1 spec states:
      13.3.4 Enterprise Beans Using Container-Managed Transaction Demarcation
      "The enterprise bean's business methods, message listener methods, business method interceptor meth-
      ods, lifecycle callback interceptor methods, or timeout callback methods must not attempt to obtain or
      use the javax.transaction.UserTransaction interface. ..."
      16.12 UserTransaction Interface
      "The container must make the UserTransaction interface available to the enterprise beans that are
      allowed to use this interface (only session and message-driven beans with bean-managed transaction
      demarcation are allowed to use this interface) either through injection using the Resource annotation
      or in JNDI under the name java:comp/UserTransaction, in addition to through the EJBContext
      interface. ..."

            rhn-engineering-jharting Jozef Hartinger
            mkouba@redhat.com Martin Kouba
            0 Vote for this issue
            1 Start watching this issue