diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java index b9736f91e..00539b981 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java @@ -29,6 +29,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.validator.AssertTrue; import org.hibernate.validator.NotEmpty; @@ -713,9 +714,16 @@ public class BaseCalendar extends IntegrationEntity implements ICalendar { public boolean isLastCalendarAvailability( CalendarAvailability calendarAvailability) { - return getLastCalendarAvailability() != null ? calendarAvailability - .getId() == getLastCalendarAvailability().getId() - : false; + if (getLastCalendarAvailability() == null + || calendarAvailability == null) { + return false; + } + if (getLastCalendarAvailability().getId() == null + && calendarAvailability.getId() == null) { + return getLastCalendarAvailability() == calendarAvailability; + } + return ObjectUtils.equals(getLastCalendarAvailability().getId(), + calendarAvailability.getId()); } public void setStartDate(CalendarAvailability calendarAvailability, diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java index 12e1392a5..b8f1df751 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java @@ -1216,10 +1216,10 @@ public abstract class BaseCalendarEditionController extends private LocalDate getAppropiateEndDate( CalendarAvailability calendarAvailability, Date endDate) { - if(endDate == null){ + if (endDate == null) { if (baseCalendarModel .isLastActivationPeriod(calendarAvailability)) { - return null; + return null; } else { throw new IllegalArgumentException( _("Only the last activation period allows to delete end date."));