Browse our Products

Aspose.Tasks for Java 26.3 Release Notes

All Changes

KeySummaryIssue Type
TASKSNET-11596Fix CalendarException.ToDate property setter logicEnhancement
TASKSNET-11682Fix writing of EarnedValueMethod and PhysicalPercentComplete fields to MPP formatBug
TASKSNET-11680Fix incorrect calculation of formula with absent Date fields valuesBug
TASKSNET-11631Fix Activity Codes and User Defined Fields are not read when project is read from Primavera DBBug

Related issue: TASKSNET-11596 - Fix CalendarException.ToDate property setter logic.

Starting with version 26.3, when a CalendarException is created and the ToDate property is specified without a time part, the ToDate property is set to the end of the day.

LocalDateTime startLdt = LocalDateTime.of(2025, 10, 15, 8, 0, 0);
Date projectStart = Date.from(startLdt.atZone(ZoneId.systemDefault()).toInstant());

Project p = new Project();
p.setStartDate(projectStart);

LocalDate excDate = LocalDate.of(2025, 10, 16);
Date exceptionDate = Date.from(excDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

CalendarException exc = new CalendarException();
exc.setDayWorking(false);
exc.setOccurrences(1);
exc.setType(CalendarExceptionType.Daily);
exc.setPeriod(1);
exc.setEnteredByOccurrences(true);
exc.setFromDate(exceptionDate);
exc.setToDate(exceptionDate); // ToDate is set to 2025-10-16 23:59:00). Prior to 26.3 it was set to 2025-10-16 00:00:00.

p.getCalendar().getExceptions().add(exc);