This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 5f6506257a55599cd5359a85a891f77f3d578271 Author: RĂ©mi Kowalski <rkowal...@linagora.com> AuthorDate: Wed Sep 4 13:35:50 2019 +0200 JAMES-2813 make ReprocessingAllMailsTask.AdditionalInformation immutable --- .../webadmin/service/ReprocessingAllMailsTask.java | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java index 2c669bf..02fd99a 100644 --- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java +++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java @@ -35,7 +35,6 @@ import org.apache.james.task.Task; import org.apache.james.task.TaskExecutionDetails; import org.apache.james.task.TaskType; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; public class ReprocessingAllMailsTask implements Task { @@ -47,14 +46,14 @@ public class ReprocessingAllMailsTask implements Task { private final String targetQueue; private final Optional<String> targetProcessor; private final long initialCount; - private final AtomicLong processedCount; + private final long remainingCount; - public AdditionalInformation(MailRepositoryPath repositoryPath, String targetQueue, Optional<String> targetProcessor, long initialCount) { + public AdditionalInformation(MailRepositoryPath repositoryPath, String targetQueue, Optional<String> targetProcessor, long initialCount, long remainingCount) { this.repositoryPath = repositoryPath; this.targetQueue = targetQueue; this.targetProcessor = targetProcessor; this.initialCount = initialCount; - this.processedCount = new AtomicLong(0); + this.remainingCount = remainingCount; } public String getTargetQueue() { @@ -70,17 +69,13 @@ public class ReprocessingAllMailsTask implements Task { } public long getRemainingCount() { - return initialCount - processedCount.get(); + return remainingCount; } public long getInitialCount() { return initialCount; } - @JsonIgnore - public void notifyProgress(MailKey key) { - processedCount.incrementAndGet(); - } } public static class UrlEncodingFailureSerializationException extends RuntimeException { @@ -103,7 +98,7 @@ public class ReprocessingAllMailsTask implements Task { try { return new ReprocessingAllMailsTaskDTO( typeName, - domainObject.additionalInformation.initialCount, + domainObject.repositorySize, domainObject.repositoryPath.urlEncoded(), domainObject.targetQueue, domainObject.targetProcessor @@ -180,7 +175,8 @@ public class ReprocessingAllMailsTask implements Task { private final MailRepositoryPath repositoryPath; private final String targetQueue; private final Optional<String> targetProcessor; - private final AdditionalInformation additionalInformation; + private final long repositorySize; + private final AtomicLong processedCount; public ReprocessingAllMailsTask(ReprocessingService reprocessingService, long repositorySize, MailRepositoryPath repositoryPath, String targetQueue, Optional<String> targetProcessor) { @@ -188,14 +184,18 @@ public class ReprocessingAllMailsTask implements Task { this.repositoryPath = repositoryPath; this.targetQueue = targetQueue; this.targetProcessor = targetProcessor; - this.additionalInformation = new AdditionalInformation( - repositoryPath, targetQueue, targetProcessor, repositorySize); + this.repositorySize = repositorySize; + this.processedCount = new AtomicLong(0); + } + + private void notifyProgress(MailKey key) { + processedCount.incrementAndGet(); } @Override public Result run() { try { - reprocessingService.reprocessAll(repositoryPath, targetProcessor, targetQueue, additionalInformation::notifyProgress); + reprocessingService.reprocessAll(repositoryPath, targetProcessor, targetQueue, this::notifyProgress); return Result.COMPLETED; } catch (MessagingException | MailRepositoryStore.MailRepositoryStoreException e) { LOGGER.error("Encountered error while reprocessing repository", e); @@ -210,7 +210,8 @@ public class ReprocessingAllMailsTask implements Task { @Override public Optional<TaskExecutionDetails.AdditionalInformation> details() { - return Optional.of(additionalInformation); + return Optional.of(new AdditionalInformation( + repositoryPath, targetQueue, targetProcessor, repositorySize, repositorySize - processedCount.get())); } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org