JAMES-2296 JMS remove by recipient is not remove message from queue. Using proper separator and LIKE operator instead of equals operator to match single recipient from serialized string.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/196c637d Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/196c637d Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/196c637d Branch: refs/heads/master Commit: 196c637d01657d597250341b0c7b8f86c5c521e7 Parents: bc9802c Author: Edgar Asatryan <[email protected]> Authored: Thu Jul 5 15:16:49 2018 +0400 Committer: benwa <[email protected]> Committed: Wed Jul 11 10:29:24 2018 +0700 ---------------------------------------------------------------------- .../james/queue/activemq/ActiveMQMailQueueBlobTest.java | 7 ------- .../main/java/org/apache/james/queue/jms/JMSMailQueue.java | 5 +++-- 2 files changed, 3 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/196c637d/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java index 0ae293b..e7e41dd 100644 --- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java +++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java @@ -109,13 +109,6 @@ public class ActiveMQMailQueueBlobTest implements DelayedManageableMailQueueCont @Test @Override - @Disabled("JAMES-2296 Not handled by JMS mailqueue. Only single recipient per-recipient removal works") - public void removeByRecipientShouldRemoveSpecificEmailWhenMultipleRecipients() { - - } - - @Test - @Override @Disabled("JAMES-2308 Flushing JMS mail queue randomly re-order them" + "Random test failing around 1% of the time") public void flushShouldPreserveBrowseOrder() { http://git-wip-us.apache.org/repos/asf/james-project/blob/196c637d/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java index 8386731..75f65bc 100644 --- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java +++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java @@ -462,7 +462,6 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori /** * Create a {@link org.apache.james.queue.api.MailQueue.MailQueueItem} for the given parameters * - * @param connection * @param session * @param consumer * @param message @@ -624,7 +623,9 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori case Sender: return count(removeWithSelector(JAMES_MAIL_SENDER + " = '" + value + "'")); case Recipient: - return count(removeWithSelector(JAMES_MAIL_RECIPIENTS + " = '" + value + "' or " + JAMES_MAIL_RECIPIENTS + " = '%," + value + "' or " + JAMES_MAIL_RECIPIENTS + " = '%," + value + "%'")); + return count(removeWithSelector(JAMES_MAIL_RECIPIENTS + " = '" + value + "' or " + JAMES_MAIL_RECIPIENTS + + " LIKE '%" + JAMES_MAIL_SEPARATOR + value + "' or " + JAMES_MAIL_RECIPIENTS + " LIKE '%" + + JAMES_MAIL_SEPARATOR + value + "%'")); default: break; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
