|
|
|
@ -69,7 +69,7 @@ import org.springframework.util.ReflectionUtils; |
|
|
|
* consider setting "sessionTransacted" to "true" instead. |
|
|
|
* consider setting "sessionTransacted" to "true" instead. |
|
|
|
* <li>"sessionAcknowledgeMode" set to "CLIENT_ACKNOWLEDGE": |
|
|
|
* <li>"sessionAcknowledgeMode" set to "CLIENT_ACKNOWLEDGE": |
|
|
|
* Automatic message acknowledgment <i>after</i> successful listener execution; |
|
|
|
* Automatic message acknowledgment <i>after</i> successful listener execution; |
|
|
|
* no redelivery in case of exception thrown. |
|
|
|
* best-effort redelivery in case of exception thrown. |
|
|
|
* <li>"sessionAcknowledgeMode" set to "DUPS_OK_ACKNOWLEDGE": |
|
|
|
* <li>"sessionAcknowledgeMode" set to "DUPS_OK_ACKNOWLEDGE": |
|
|
|
* <i>Lazy</i> message acknowledgment during or after listener execution; |
|
|
|
* <i>Lazy</i> message acknowledgment during or after listener execution; |
|
|
|
* <i>potential redelivery</i> in case of exception thrown. |
|
|
|
* <i>potential redelivery</i> in case of exception thrown. |
|
|
|
@ -601,6 +601,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen |
|
|
|
rollbackIfNecessary(session); |
|
|
|
rollbackIfNecessary(session); |
|
|
|
throw new MessageRejectedWhileStoppingException(); |
|
|
|
throw new MessageRejectedWhileStoppingException(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
invokeListener(session, message); |
|
|
|
invokeListener(session, message); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -630,6 +631,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen |
|
|
|
@SuppressWarnings("rawtypes") |
|
|
|
@SuppressWarnings("rawtypes") |
|
|
|
protected void invokeListener(Session session, Message message) throws JMSException { |
|
|
|
protected void invokeListener(Session session, Message message) throws JMSException { |
|
|
|
Object listener = getMessageListener(); |
|
|
|
Object listener = getMessageListener(); |
|
|
|
|
|
|
|
|
|
|
|
if (listener instanceof SessionAwareMessageListener) { |
|
|
|
if (listener instanceof SessionAwareMessageListener) { |
|
|
|
doInvokeListener((SessionAwareMessageListener) listener, session, message); |
|
|
|
doInvokeListener((SessionAwareMessageListener) listener, session, message); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -731,7 +733,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen |
|
|
|
JmsUtils.rollbackIfNecessary(session); |
|
|
|
JmsUtils.rollbackIfNecessary(session); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else if (isClientAcknowledge(session)) { |
|
|
|
session.recover(); |
|
|
|
session.recover(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -753,7 +755,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen |
|
|
|
JmsUtils.rollbackIfNecessary(session); |
|
|
|
JmsUtils.rollbackIfNecessary(session); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else if (isClientAcknowledge(session)) { |
|
|
|
session.recover(); |
|
|
|
session.recover(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|