0 Replies Latest reply on May 20, 2008 10:19 PM by John Hayward

    Transaction Demarcation for REQUIRES_NEW not working with async methods

    John Hayward Newbie

      public interface TestJob_if {
          @Asynchronous @Transactional
          public QuartzTriggerHandle doWork();
      public class TestJob  implements TestJob_if {
          @In(create = true)  private Session session;
          public QuartzTriggerHandle doWork() {
              BlacklistEntry b = createEntry();
              if (true) throw new RuntimeException("fail here...");
              return null;
          public BlacklistEntry createEntry() {
              BlacklistEntry b = new BlacklistEntry();
              return b;

      When the exception occurs in the main async method, the entire transaction is rolled back and nothing is committed to the database.  I expected the createEntry() function to have executed in a new transaction and to have committed the entry to the database before returning to the parent method.  Am I doing something wrong or does this look like a bug in transaction demarcation with async methods?

      jboss 2.0.2.GA and jboss 4.2.2.GA