diff --git a/zanata-war/src/main/java/org/zanata/async/TimedAsyncHandle.java b/zanata-war/src/main/java/org/zanata/async/TimedAsyncHandle.java index 48cedf93d3..0278f119b6 100644 --- a/zanata-war/src/main/java/org/zanata/async/TimedAsyncHandle.java +++ b/zanata-war/src/main/java/org/zanata/async/TimedAsyncHandle.java @@ -60,11 +60,9 @@ public Optional getEstimatedTimeRemaining() { if (this.startTime > 0 && currentProgress > 0) { long currentTime = System.currentTimeMillis(); long timeElapsed = currentTime - this.startTime; - long averageTimePerProgressUnit = - timeElapsed / this.currentProgress; - - return Optional.of(averageTimePerProgressUnit - * (this.maxProgress - this.currentProgress)); + int remainingUnits = this.maxProgress - this.currentProgress; + return Optional.of(timeElapsed * remainingUnits + / this.currentProgress); } else { return Optional.absent(); }