/* 228 */ SessionState state = getState(invocation);
/* */
/* 230 */ int ackMode = state.getAcknowledgeMode();
/* */
/* 232 */ Object[] args = mi.getArguments();
/* 233 */ DeliveryInfo info = (DeliveryInfo)args[0];
/* */
/* 235 */ if (ackMode == 2)
/* */ {
/* 239 */ if (this.trace) log.trace(this + " added to CLIENT_ACKNOWLEDGE list delivery " + info);
/* */
/* 242 */ if (info.getConnectionConsumerSession() != null)
/* */ {
/* 244 */ throw new IllegalStateException("CLIENT_ACKNOWLEDGE cannot be used with a connection consumer");
/* */ }
/* */
/* 248 */ state.getClientAckList().add(info);
/* */ }
/* 252 */ else if ((ackMode == 1) || (isXAAndConsideredNonTransacted(state)))
/* */ {
/* 256 */ if (this.trace) log.trace(this + " added " + info + " to session state");
/* */
/* 258 */ state.setAutoAckInfo(info);
/* */ }
/* 260 */ else if (ackMode == 3)
/* */ {
/* 262 */ if (this.trace) log.trace(this + " added to DUPS_OK_ACKNOWLEDGE list delivery " + info);
/* */
/* 264 */ state.getClientAckList().add(info);
/* */
/* 267 */ state.setAutoAckInfo(info);
/* */ }
/* */ else
/* */ {
/* 271 */ Object txID = state.getCurrentTxId();
/* */
/* 273 */ if (txID != null)
/* */ {
/* 279 */ ConnectionState connState = (ConnectionState)state.getParent();
/* */
/* 281 */ if (this.trace) log.trace("sending acknowlegment transactionally, queueing on resource manager");
/* */
/* 287 */ ClientSessionDelegate connectionConsumerDelegate = (ClientSessionDelegate)info.getConnectionConsumerSession();
/* */
/* 290 */ String sessionId = connectionConsumerDelegate != null ? connectionConsumerDelegate.getID() : state.getSessionID();
/* */
/* 293 */ connState.getResourceManager().addAck(txID, sessionId, info);
/* */ }