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.
@@ -601,6 +601,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
601
601
rollbackIfNecessary (session );
602
602
throw new MessageRejectedWhileStoppingException ();
603
603
}
604
+
604
605
try {
605
606
invokeListener (session , message );
606
607
}
@@ -630,6 +631,7 @@ protected void doExecuteListener(Session session, Message message) throws JMSExc
630
631
@ SuppressWarnings ("rawtypes" )
631
632
protected void invokeListener (Session session , Message message ) throws JMSException {
632
633
Object listener = getMessageListener ();
634
+
633
635
if (listener instanceof SessionAwareMessageListener ) {
634
636
doInvokeListener ((SessionAwareMessageListener ) listener , session , message );
635
637
}
@@ -731,7 +733,7 @@ protected void rollbackIfNecessary(Session session) throws JMSException {
731
733
JmsUtils .rollbackIfNecessary (session );
732
734
}
733
735
}
734
- else {
736
+ else if ( isClientAcknowledge ( session )) {
735
737
session .recover ();
736
738
}
737
739
}
@@ -753,7 +755,7 @@ protected void rollbackOnExceptionIfNecessary(Session session, Throwable ex) thr
753
755
JmsUtils .rollbackIfNecessary (session );
754
756
}
755
757
}
756
- else {
758
+ else if ( isClientAcknowledge ( session )) {
757
759
session .recover ();
758
760
}
759
761
}
0 commit comments