69
69
* consider setting "sessionTransacted" to "true" instead.
70
70
* <li>"sessionAcknowledgeMode" set to "CLIENT_ACKNOWLEDGE":
71
71
* Automatic message acknowledgment <i>after</i> successful listener execution;
72
- * no redelivery in case of exception thrown.
72
+ * best-effort redelivery in case of exception thrown.
73
73
* <li>"sessionAcknowledgeMode" set to "DUPS_OK_ACKNOWLEDGE":
74
74
* <i>Lazy</i> message acknowledgment during or after listener execution;
75
75
* <i>potential redelivery</i> in case of exception thrown.
@@ -631,6 +631,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
631
631
rollbackIfNecessary (session );
632
632
throw new MessageRejectedWhileStoppingException ();
633
633
}
634
+
634
635
try {
635
636
invokeListener (session , message );
636
637
}
@@ -660,6 +661,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
660
661
@ SuppressWarnings ("rawtypes" )
661
662
protected void invokeListener (Session session , Message message ) throws JMSException {
662
663
Object listener = getMessageListener ();
664
+
663
665
if (listener instanceof SessionAwareMessageListener ) {
664
666
doInvokeListener ((SessionAwareMessageListener ) listener , session , message );
665
667
}
@@ -761,7 +763,7 @@ protected void rollbackIfNecessary(Session session) throws JMSException {
761
763
JmsUtils .rollbackIfNecessary (session );
762
764
}
763
765
}
764
- else {
766
+ else if ( isClientAcknowledge ( session )) {
765
767
session .recover ();
766
768
}
767
769
}
@@ -783,7 +785,7 @@ protected void rollbackOnExceptionIfNecessary(Session session, Throwable ex) thr
783
785
JmsUtils .rollbackIfNecessary (session );
784
786
}
785
787
}
786
- else {
788
+ else if ( isClientAcknowledge ( session )) {
787
789
session .recover ();
788
790
}
789
791
}
0 commit comments