From f569d6d2c70e20cbe2d5c62579da793af7d275f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 11 May 2011 18:44:00 +0200 Subject: [PATCH] Fix violation of the intended immutability of IntraDayDate A comment in the javadoc is added stating it. Final keyword is added to the class so the immutability is not bypassed using subclasses. Final cannot be applied to the fields because it must have an empty constructor for Hibernate. FEA: ItEr74S04BugFixing --- .../navalplanner/business/workingday/IntraDayDate.java | 8 ++++---- .../planner/consolidations/AdvanceConsolidationModel.java | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workingday/IntraDayDate.java b/navalplanner-business/src/main/java/org/navalplanner/business/workingday/IntraDayDate.java index ac80534be..dcc02029a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workingday/IntraDayDate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workingday/IntraDayDate.java @@ -41,6 +41,10 @@ import org.joda.time.Days; import org.joda.time.LocalDate; /** + *

+ * Instances of this class represent values so immutable objects are used. In + * order to do modifications new instances must be created. + *

*

* A date type that represents a point inside a working day. This doesn't * translate directly to a concrete DateTime because the working day can start @@ -187,10 +191,6 @@ public class IntraDayDate implements Comparable { return getDate().plusDays(1); } - public void plus(int days) { - this.date = this.date.plusDays(days); - } - public int compareTo(LocalDate other) { int result = this.date.compareTo(other); if (result != 0) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationModel.java index 2b9afb5d4..14845b214 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/consolidations/AdvanceConsolidationModel.java @@ -253,8 +253,7 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel { Arrays.asList(resourceAllocation .asResourcesPerDayModification())) .untilAllocating(hours(pendingHours)); - date.plus(1); - task.setIntraDayEndDate(date); + task.setIntraDayEndDate(date.nextDayAtStart()); } } else { reassign(resourceAllocation, startInclusive, endExclusive,