in jbi/cluster/requestor/src/main/java/org/apache/servicemix/jbi/cluster/requestor/AbstractPollingRequestorPool.java [220:266]
public synchronized void close() {
if (session != null) {
if (!suspended) {
try {
if (transacted == Transacted.Jms) {
if (rollbackOnly) {
session.rollback();
} else {
session.commit();
}
afterClose();
} else if (transacted == Transacted.Xa) {
destroy();
try {
if (rollbackOnly) {
if (logger.isDebugEnabled()) {
logger.debug("Rolling back XA transaction");
}
transactionManager.rollback();
} else {
if (logger.isDebugEnabled()) {
logger.debug("Committing XA transaction");
}
transactionManager.commit();
}
} catch (Exception e) {
throw new TransactionException(e);
}
} else if (transacted == Transacted.ClientAck) {
if (message != null) {
if (!rollbackOnly) {
message.acknowledge();
} else {
destroyConsumer();
}
}
afterClose();
} else {
afterClose();
}
} catch (JMSException e) {
destroy();
throw convertJmsAccessException(e);
}
}
}
}