if (!synchronizationRegistered) { synchronizationRegistered = true; session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
if (!unconsumedMessages.isClosed()) { if (!deliveredMessages.isEmpty() && session.getTransactionContext().isInTransaction()) { session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void afterCommit() throws Exception {
if (!synchronizationRegistered) { synchronizationRegistered = true; getTransactionContext().addSynchronization(new Synchronization() {
ack.setTransactionId(getTransactionContext().getTransactionId()); if (ack.getTransactionId() != null) { getTransactionContext().addSynchronization(new Synchronization() {
if (!synchronizationRegistered) { synchronizationRegistered = true; session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
if (!synchronizationRegistered) { synchronizationRegistered = true; session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
if (!synchronizationRegistered) { synchronizationRegistered = true; session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
if (!unconsumedMessages.isClosed()) { if (!deliveredMessages.isEmpty() && session.getTransactionContext().isInTransaction()) { session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void afterCommit() throws Exception {
if (!unconsumedMessages.isClosed()) { if (!deliveredMessages.isEmpty() && session.getTransactionContext().isInTransaction()) { session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void afterCommit() throws Exception {
if (!unconsumedMessages.isClosed()) { if (!deliveredMessages.isEmpty() && session.getTransactionContext().isInTransaction()) { session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void afterCommit() throws Exception {
if (!synchronizationRegistered) { synchronizationRegistered = true; getTransactionContext().addSynchronization(new Synchronization() {
if (!unconsumedMessages.isClosed()) { if (session.getTransactionContext().isInTransaction()) { session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void afterCommit() throws Exception {
if (!synchronizationRegistered) { synchronizationRegistered = true; getTransactionContext().addSynchronization(new Synchronization() {
if (!synchronizationRegistered) { synchronizationRegistered = true; getTransactionContext().addSynchronization(new Synchronization() {
if (!synchronizationRegistered) { synchronizationRegistered = true; getTransactionContext().addSynchronization(new Synchronization() {
final AtomicInteger rollbackCountA = new AtomicInteger(0); final AtomicInteger rollbackCountB = new AtomicInteger(0); underTest.addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception { underTest.addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
@Test public void testSyncIndexCleared() throws Exception { final AtomicInteger beforeEndCountA = new AtomicInteger(0); final AtomicInteger rollbackCountA = new AtomicInteger(0); Synchronization sync = new Synchronization() { @Override public void beforeEnd() throws Exception { beforeEndCountA.getAndIncrement(); } @Override public void afterCommit() throws Exception { fail("expected rollback exception"); } @Override public void afterRollback() throws Exception { rollbackCountA.incrementAndGet(); } }; underTest.begin(); underTest.addSynchronization(sync); underTest.rollback(); assertEquals("beforeEnd", 1, beforeEndCountA.get()); assertEquals("rollback", 1, rollbackCountA.get()); // do it again underTest.begin(); underTest.addSynchronization(sync); underTest.rollback(); assertEquals("beforeEnd", 2, beforeEndCountA.get()); assertEquals("rollback", 2, rollbackCountA.get()); }
if (!synchronizationRegistered) { synchronizationRegistered = true; session.getTransactionContext().addSynchronization(new Synchronization() { @Override public void beforeEnd() throws Exception {
ack.setTransactionId(getTransactionContext().getTransactionId()); if (ack.getTransactionId() != null) { getTransactionContext().addSynchronization(new Synchronization() {
ack.setTransactionId(getTransactionContext().getTransactionId()); if (ack.getTransactionId() != null) { getTransactionContext().addSynchronization(new Synchronization() {