MAILBOX-297 add containsFailedResults to FlagsUpdateStageResult
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/75cdccc2 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/75cdccc2 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/75cdccc2 Branch: refs/heads/master Commit: 75cdccc29ad40af15cc5006d62ba405f9904aca9 Parents: 32fa054 Author: benwa <[email protected]> Authored: Wed May 24 15:33:10 2017 +0700 Committer: benwa <[email protected]> Committed: Mon May 29 17:02:50 2017 +0700 ---------------------------------------------------------------------- .../mailbox/cassandra/mail/CassandraMessageMapper.java | 4 ++-- .../cassandra/mail/utils/FlagsUpdateStageResult.java | 4 ++++ .../mail/utils/FlagsUpdateStageResultTest.java | 13 +++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/75cdccc2/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java index b959972..68133eb 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java @@ -282,7 +282,7 @@ public class CassandraMessageMapper implements MessageMapper { FlagsUpdateStageResult firstResult = runUpdateStage(mailboxId, toBeUpdated, flagUpdateCalculator); FlagsUpdateStageResult finalResult = handleUpdatesStagedRetry(mailboxId, flagUpdateCalculator, firstResult); - if (!finalResult.getFailed().isEmpty()) { + if (finalResult.containsFailedResults()) { LOGGER.error("Can not update following UIDs {} for mailbox {}", finalResult.getFailed(), mailboxId.asUuid()); } return finalResult.getSucceeded().iterator(); @@ -291,7 +291,7 @@ public class CassandraMessageMapper implements MessageMapper { private FlagsUpdateStageResult handleUpdatesStagedRetry(CassandraId mailboxId, FlagsUpdateCalculator flagUpdateCalculator, FlagsUpdateStageResult firstResult) { FlagsUpdateStageResult globalResult = firstResult; int retryCount = 0; - while (retryCount < maxRetries && !globalResult.getFailed().isEmpty()) { + while (retryCount < maxRetries && globalResult.containsFailedResults()) { retryCount++; FlagsUpdateStageResult stageResult = retryUpdatesStage(mailboxId, flagUpdateCalculator, globalResult.getFailed()); globalResult = globalResult.keepSucceded().merge(stageResult); http://git-wip-us.apache.org/repos/asf/james-project/blob/75cdccc2/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java index 0bdaa7e..df2858f 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java @@ -70,6 +70,10 @@ public class FlagsUpdateStageResult { .build()); } + public boolean containsFailedResults() { + return !failed.isEmpty(); + } + public FlagsUpdateStageResult keepSucceded() { return new FlagsUpdateStageResult(ImmutableList.of(), succeeded); } http://git-wip-us.apache.org/repos/asf/james-project/blob/75cdccc2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java index 2c43111..93f7273 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java @@ -131,4 +131,17 @@ public class FlagsUpdateStageResultTest { .isEqualTo(FlagsUpdateStageResult.success(UPDATED_FLAGS)); } + @Test + public void containsFailedResultsShouldReturnTrueWhenFailed() { + assertThat(FlagsUpdateStageResult.fail(UID).containsFailedResults()) + .isTrue(); + } + + + @Test + public void containsFailedResultsShouldReturnFalseWhenSucceeded() { + assertThat(FlagsUpdateStageResult.success(UPDATED_FLAGS).containsFailedResults()) + .isFalse(); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
