diff --git a/src/e2e/java/teammates/e2e/pageobjects/FeedbackResultsPage.java b/src/e2e/java/teammates/e2e/pageobjects/FeedbackResultsPage.java index c059def60b4..6c4cca5d133 100644 --- a/src/e2e/java/teammates/e2e/pageobjects/FeedbackResultsPage.java +++ b/src/e2e/java/teammates/e2e/pageobjects/FeedbackResultsPage.java @@ -293,7 +293,8 @@ private boolean isRubricResponseEqual(WebElement responseField, FeedbackResponse FeedbackRubricResponseDetails responseDetails = (FeedbackRubricResponseDetails) response.getResponseDetailsCopy(); List answers = responseDetails.getAnswer(); for (int i = 0; i < answers.size(); i++) { - WebElement rubricRow = responseField.findElements(By.cssSelector("#rubric-answers tr")).get(i); + WebElement rubricTableBody = responseField.findElement(By.className("rubric-answers")); + WebElement rubricRow = rubricTableBody.findElements(By.cssSelector("tr")).get(i); WebElement rubricCell = rubricRow.findElements(By.tagName("td")).get(answers.get(i) + 1); if (rubricCell.findElements(By.className("fa-check")).size() == 0) { return false; diff --git a/src/main/java/teammates/logic/core/FeedbackSessionsLogic.java b/src/main/java/teammates/logic/core/FeedbackSessionsLogic.java index 120d3797d1c..3772955a15d 100644 --- a/src/main/java/teammates/logic/core/FeedbackSessionsLogic.java +++ b/src/main/java/teammates/logic/core/FeedbackSessionsLogic.java @@ -2,6 +2,7 @@ import java.time.Instant; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -632,15 +633,17 @@ private void updateFeedbackSessionsDeadlinesForUser(String courseId, String emai if (!instructorDeadlines.containsKey(emailAddress)) { return; } - deadlinesUpdater.accept(instructorDeadlines); - updateOptionsBuilder.withInstructorDeadlines(instructorDeadlines); + Map newInstructorDeadlines = new HashMap<>(instructorDeadlines); + deadlinesUpdater.accept(newInstructorDeadlines); + updateOptionsBuilder.withInstructorDeadlines(newInstructorDeadlines); } else { Map studentDeadlines = feedbackSession.getStudentDeadlines(); if (!studentDeadlines.containsKey(emailAddress)) { return; } - deadlinesUpdater.accept(studentDeadlines); - updateOptionsBuilder.withStudentDeadlines(studentDeadlines); + Map newStudentDeadlines = new HashMap<>(studentDeadlines); + deadlinesUpdater.accept(newStudentDeadlines); + updateOptionsBuilder.withStudentDeadlines(newStudentDeadlines); } try { fsDb.updateFeedbackSession(updateOptionsBuilder.build()); diff --git a/src/test/java/teammates/logic/core/FeedbackSessionsLogicTest.java b/src/test/java/teammates/logic/core/FeedbackSessionsLogicTest.java index 75301a2d593..20873caca9f 100644 --- a/src/test/java/teammates/logic/core/FeedbackSessionsLogicTest.java +++ b/src/test/java/teammates/logic/core/FeedbackSessionsLogicTest.java @@ -785,6 +785,9 @@ public void testUpdateFeedbackSessionsStudentDeadlinesWithNewEmail() { fsLogic.updateFeedbackSessionsStudentDeadlinesWithNewEmail(courseId, oldEmailAddress, newEmailAddress); + // Clear the Objectify cache to fetch the latest FeedbackSessions from the db + clearObjectifyCache(); + assertTrue(fsLogic.getFeedbackSessionsForCourse(courseId) .stream() .noneMatch(feedbackSessionAttributes -> feedbackSessionAttributes.getStudentDeadlines() diff --git a/src/test/java/teammates/test/BaseTestCaseWithLocalDatabaseAccess.java b/src/test/java/teammates/test/BaseTestCaseWithLocalDatabaseAccess.java index 03ba65eefe5..7ef3c258a31 100644 --- a/src/test/java/teammates/test/BaseTestCaseWithLocalDatabaseAccess.java +++ b/src/test/java/teammates/test/BaseTestCaseWithLocalDatabaseAccess.java @@ -178,4 +178,8 @@ protected boolean doPutDocuments(DataBundle dataBundle) { } } + protected void clearObjectifyCache() { + ObjectifyService.ofy().clear(); + } + } diff --git a/src/web/app/components/question-types/question-response/rubric-question-response.component.html b/src/web/app/components/question-types/question-response/rubric-question-response.component.html index 537cc610cb3..5fc1e19d15a 100644 --- a/src/web/app/components/question-types/question-response/rubric-question-response.component.html +++ b/src/web/app/components/question-types/question-response/rubric-question-response.component.html @@ -6,7 +6,7 @@ {{ choice }} - + {{ questionDetails.rubricSubQuestions[i] }}