diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java
index 069e77518..14433f8a3 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java
@@ -204,7 +204,7 @@ public class LimitingResourcesController extends GenericForwardComposer {
return timeTracker = new TimeTracker(limitingResourceQueueModel
.getViewInterval(), ZoomLevel.DETAIL_THREE,
SeveralModificators.create(),
- SeveralModificators.create(new BankHolidaysMarker(getDefaultCalendar())),parent);
+ SeveralModificators.create(BankHolidaysMarker.create(getDefaultCalendar())),parent);
}
private BaseCalendar getDefaultCalendar() {
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java
index d15421b8c..44cf49fca 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java
@@ -288,8 +288,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
OrderPlanningModel.configureInitialZoomLevelFor(planner,
defaultZoomLevel);
- configuration.setSecondLevelModificators(new BankHolidaysMarker(
- getDefaultCalendar()));
+ configuration.setSecondLevelModificators(BankHolidaysMarker.create(getDefaultCalendar()));
planner.setConfiguration(configuration);
if(expandPlanningViewChart) {
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
index 6edf8416d..de36d6eb6 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java
@@ -23,6 +23,7 @@ import org.apache.commons.lang.Validate;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.calendars.entities.ICalendar;
import org.navalplanner.business.workingday.IntraDayDate.PartialDay;
+import org.navalplanner.web.calendars.BaseCalendarModel;
import org.zkoss.ganttz.timetracker.zoom.DetailItem;
import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator;
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
@@ -33,14 +34,21 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
public final class BankHolidaysMarker implements
IDetailItemModificator {
- private final ICalendar calendar;
-
- public BankHolidaysMarker(ICalendar calendar) {
- Validate.notNull(calendar);
- this.calendar = calendar;
+ public static BankHolidaysMarker create(BaseCalendar calendar) {
+ BaseCalendarModel.forceLoadBaseCalendar(calendar);
+ return new BankHolidaysMarker(calendar);
}
- public BankHolidaysMarker(BaseCalendar calendar) {
+ private final ICalendar calendar;
+
+ /**
+ * Important: Make sure that the provided calendar has all
+ * its associated data loaded.
+ *
+ * @param calendar
+ */
+ public BankHolidaysMarker(ICalendar calendar) {
+ Validate.notNull(calendar);
this.calendar = calendar;
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java
index e2c16451a..5b71cce74 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java
@@ -568,12 +568,11 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
PlannerConfiguration configuration) {
if (orderReloaded.getDeadline() != null) {
configuration.setSecondLevelModificators(SeveralModificators
- .create(new BankHolidaysMarker(orderReloaded
+ .create(BankHolidaysMarker.create(orderReloaded
.getCalendar()),
createDeadlineShower(orderReloaded.getDeadline())));
} else {
- configuration.setSecondLevelModificators(new BankHolidaysMarker(
- orderReloaded.getCalendar()));
+ configuration.setSecondLevelModificators(BankHolidaysMarker.create(orderReloaded.getCalendar()));
}
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java
index 2f1e8eac0..be6db1030 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java
@@ -268,7 +268,7 @@ public class ResourceLoadController implements Composer {
private BankHolidaysMarker createBankHolidaysMarker() {
BaseCalendar defaultCalendar = configurationDAO.getConfiguration()
.getDefaultCalendar();
- return new BankHolidaysMarker(defaultCalendar);
+ return BankHolidaysMarker.create(defaultCalendar);
}
private void buildResourcesLoadPanel() {