63
63
* consider setting "sessionTransacted" to "true" instead.
64
64
* <li>"sessionAcknowledgeMode" set to "CLIENT_ACKNOWLEDGE":
65
65
* Automatic message acknowledgment <i>after</i> successful listener execution;
66
- * no redelivery in case of exception thrown.
66
+ * best-effort redelivery in case of exception thrown.
67
67
* <li>"sessionAcknowledgeMode" set to "DUPS_OK_ACKNOWLEDGE":
68
68
* <i>Lazy</i> message acknowledgment during or after listener execution;
69
69
* <i>potential redelivery</i> in case of exception thrown.
@@ -469,6 +469,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
469
469
rollbackIfNecessary (session );
470
470
throw new MessageRejectedWhileStoppingException ();
471
471
}
472
+
472
473
try {
473
474
invokeListener (session , message );
474
475
}
@@ -498,6 +499,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
498
499
@ SuppressWarnings ("rawtypes" )
499
500
protected void invokeListener (Session session , Message message ) throws JMSException {
500
501
Object listener = getMessageListener ();
502
+
501
503
if (listener instanceof SessionAwareMessageListener ) {
502
504
doInvokeListener ((SessionAwareMessageListener ) listener , session , message );
503
505
}
@@ -599,7 +601,7 @@ protected void rollbackIfNecessary(Session session) throws JMSException {
599
601
JmsUtils .rollbackIfNecessary (session );
600
602
}
601
603
}
602
- else {
604
+ else if ( isClientAcknowledge ( session )) {
603
605
session .recover ();
604
606
}
605
607
}
@@ -621,7 +623,7 @@ protected void rollbackOnExceptionIfNecessary(Session session, Throwable ex) thr
621
623
JmsUtils .rollbackIfNecessary (session );
622
624
}
623
625
}
624
- else {
626
+ else if ( isClientAcknowledge ( session )) {
625
627
session .recover ();
626
628
}
627
629
}
0 commit comments