[Bug #1084] Fix bug

Use floating point arithmetic if the fraction overflows

FEA: ItEr74S04BugFixing
This commit is contained in:
Óscar González Fernández 2011-06-06 19:19:32 +02:00
parent f56fe6ba8d
commit bc7c4a8b4e

View file

@ -328,8 +328,14 @@ public class TaskElementAdapter implements ITaskElementAdapter {
return Duration.ZERO;
}
Fraction fraction = fractionOfWorkingDayFor(effortDuration);
return new Duration(fraction.multiplyBy(
Fraction.getFraction(DAY_MILLISECONDS, 1)).intValue());
try {
return new Duration(fraction.multiplyBy(
Fraction.getFraction(DAY_MILLISECONDS, 1)).intValue());
} catch (ArithmeticException e) {
// if fraction overflows use floating point arithmetic
return new Duration(
(int) (fraction.doubleValue() * DAY_MILLISECONDS));
}
}
@SuppressWarnings("unchecked")