From a386eb3e014750adffd1f7111b48b21d99b4b83a Mon Sep 17 00:00:00 2001 From: Earle Nietzel Date: Mon, 7 Apr 2025 18:53:41 -0400 Subject: [PATCH] SAK-51326 DateManager gradebook by groups introduced a thread safety issue https://sakaiproject.atlassian.net/browse/SAK-51326 --- .../datemanager/impl/DateManagerServiceImpl.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/site-manage/datemanager/impl/src/main/java/org/sakaiproject/datemanager/impl/DateManagerServiceImpl.java b/site-manage/datemanager/impl/src/main/java/org/sakaiproject/datemanager/impl/DateManagerServiceImpl.java index aad568941ec8..777f8797f150 100644 --- a/site-manage/datemanager/impl/src/main/java/org/sakaiproject/datemanager/impl/DateManagerServiceImpl.java +++ b/site-manage/datemanager/impl/src/main/java/org/sakaiproject/datemanager/impl/DateManagerServiceImpl.java @@ -100,7 +100,6 @@ import org.sakaiproject.util.ResourceLoader; import org.sakaiproject.util.api.FormattedText; -import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.sakaiproject.tool.api.ToolSession; @@ -130,7 +129,6 @@ public class DateManagerServiceImpl implements DateManagerService { @Setter private UserTimeService userTimeService; @Setter private SamigoAvailableNotificationService samigoAvailableNotificationService; @Setter private FormattedText formattedText; - @Setter @Getter private List gradebooksForGroup; private final Map calendarMap = new HashMap<>(); private final DateTimeFormatter inputDateFormatter; @@ -405,7 +403,7 @@ public void updateAssignments(DateManagerValidation assignmentValidation) throws contextIds.add(gradebookUid); if (gradingService.isGradebookGroupEnabled(getCurrentSiteId())) { contextIds = new ArrayList<>(); - List gradebooks = getGradebooksForGroup(gradebookUid); + List gradebooks = gradingService.getGradebookGroupInstances(gradebookUid); for (Gradebook gradebook : gradebooks) { List groupAssignments = gradingService.getAssignments(gradebook.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE); for (org.sakaiproject.grading.api.Assignment assignmentAux : groupAssignments) { @@ -680,7 +678,7 @@ public void updateAssessments(DateManagerValidation assessmentsValidation) throw contextIds.add(gradebookUid); if (gradingService.isGradebookGroupEnabled(getCurrentSiteId())) { contextIds = new ArrayList<>(); - List gradebooks = getGradebooksForGroup(gradebookUid); + List gradebooks = gradingService.getGradebookGroupInstances(gradebookUid); for (Gradebook gradebook : gradebooks) { List groupAssignments = gradingService.getAssignments(gradebook.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE); for (org.sakaiproject.grading.api.Assignment assignment : groupAssignments) { @@ -793,7 +791,7 @@ public DateManagerValidation validateGradebookItems(String siteId, JSONArray gra org.sakaiproject.grading.api.Assignment gbitem; if (gradingService.isGradebookGroupEnabled(getCurrentSiteId())) { - List gradebooks = getGradebooksForGroup(siteId); + List gradebooks = gradingService.getGradebookGroupInstances(siteId); String groupId = ""; for (Gradebook gra : gradebooks) { List groupAssignments = gradingService.getAssignments(gra.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE); @@ -2107,11 +2105,4 @@ public JSONObject createJsonObject(String[] columnsNames, String[] columns, int } return jsonObject; } - - public List getGradebooksForGroup(String context) { - if (gradebooksForGroup == null || gradebooksForGroup.size() > 0) { - gradebooksForGroup = gradingService.getGradebookGroupInstances(context); - } - return gradebooksForGroup; - } }